onDrop(picture) {
this.setState({
pictures: this.state.pictures.concat(picture),
});
}
未捕获的TypeError:无法读取未定义的属性'concat'
答案 0 :(得分:0)
您必须在构造函数中初始化值this.state.pictures
。您只能在constructor
内部直接设置状态,在任何其他情况下,请使用this.setState
如果您不初始化状态并且不绑定方法,则无需为React组件实现构造函数。
React组件的构造函数在挂载之前被调用。在为React.Component子类实现构造函数时,应在其他任何语句之前调用super(props)。否则,this.props将在构造函数中未定义,这可能会导致错误。
通常,在React中,构造函数仅用于两个目的:
通过将对象分配给this.state来初始化本地状态。 将事件处理程序方法绑定到实例。 您不应在构造函数()中调用setState()。相反,如果您的组件需要使用本地状态,请直接在构造函数中将初始状态分配给this.state:
constructor(props) {
super(props);
// Don't call this.setState() here!
this.state = { counter: 0 };
this.handleClick = this.handleClick.bind(this);
}
构造函数是唯一应直接分配this.state的地方。在所有其他方法中,您需要改用this.setState()。
https://reactjs.org/docs/react-component.html#constructor
constructor(props) {
super(props)
this.state.pictures = []
}