【发布时间】:2018-08-02 15:04:45
【问题描述】:
当用户单击打开时,我试图通过道具将对象传递给模态。我从单击的行接收值,但我的模式无法从this.props 读取值,并且我得到一个未定义的值。我正在正确设置状态值并将其传递给模态组件。
模态调用
<Modal toggleModal={this.toggleModal} show={this.state.isOpen}
onClose={this.toggleModal} user={this.state.user} />
设置状态值
toggleModal = (user) => {
var userData = {};
if (user !== null) {
userData = user
}
this.setState({
isOpen: !this.state.isOpen,
user: userData
},()=>{
console.log('User data changed');
})
}
模态组件的渲染部分内部
if (this.props.user === null) {
userFound = 'Not found'
}
console.log(this.props.user);
在模态组件内部时,我得到了未定义。在此之前的任何地方我都得到了用户对象。
谢谢
【问题讨论】:
-
在
setState()完成后尝试forceUpdate():this.setState({ isOpen: !this.state.isOpen, user: userData },()=>{ console.log('User data changed'); this.forceUpdate(); }) -
您只检查 null 什么是
user=undefined,因为null !== undefined为真,请在 toggleModal 方法中执行console.log(user)并检查值。 -
感谢您指出错误。当我将值传递给 Modal 组件时,我仍然得到一个 undefined。
标签: javascript reactjs components state