[英]Reactjs pass value as prop after setState not working
当用户单击打开时,我试图通过道具将对象传递给模态。 我从被点击的行接收值,但我的模式无法从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);
在模态组件内部时,我未定义。 在此之前的任何地方我都得到了用户对象。
谢谢
在您的组件内部,您只是检查 null 而不是undefined
,如果您想检查 undefined ,其中一种方法是使用typeof
typeof user !== "undefined"
所以它会像(如果你想检查两者或一个,你可以相应地修改它):
toggleModal = (user) => {
var userData = {};
if (typeof user !== "undefined" && user !== null) {
userData = user
}
你可以在 if block
移动this.setState
toggleModal = (user) => {
if (typeof user !== "undefined" && user !== null) {
this.setState({
isOpen: !this.state.isOpen,
user: user
})
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.