开发者问题收集

TypeError:无法读取 null 的属性“substr”-React

2018-05-18
5656

我在 React 中有一个这样的代码...

import React, { Component } from 'react';

class Card extends Component {
constructor(props) {
    super(props);
    this.state = {
        eventName: props.eventName,
        eventDate: props.eventDate,
        eventDesc: props.eventDesc,
        eventPic: props.eventPic
    }
}

render () {

    const { eventDate, eventDesc, eventName, eventPic } = this.state;
    return (
        <article className="br2 ba dark-gray b--black-10 dib ma3 mw5 shadow-hover">
            <img src={eventPic} className="db w-100 br2 br--top" alt={eventName} />
            <div className="pa2 ph3-ns pb3-ns">
                <div className="dt w-100 mt1">
                    <div className="dtc">
                        <h1 className="f5 f4-ns mv0">{eventName}</h1>
                    </div>
                    <div className="dtc tr">
                        <h2 className="f5 mv0">{eventDate}</h2>
                    </div>
                </div>
                <p className="f6 lh-copy measure mt2 mid-gray">
                    {eventDesc.substr(0, 140)}
                </p>
            </div>
        </article>
    )
}
}

export default Card;

我遇到的问题就在这个块代码中

{eventDesc.substr(0, 140)} // This is meant to limit the eventDescription's chars.

它给了我一个 TypeError:无法读取 null 的属性“substr”。

你能帮我解决这个错误吗?谢谢

1个回答

基本上,您将值分配给 eventdesc ,默认值 props.eventdesc 。但是,如果您不传递该值(应该是 不确定 ),或者您正在传递 null 值,您将获得该行为。

您可以添加渲染上的默认值以解决以下内容:

691539688

,但最好的应该是在构造函数上具有默认值,因此您只需一次:

<代码> 884964365
Prince Hernandez
2018-05-18