gpt4 book ai didi

javascript - 为什么 setState 返回未定义?

转载 作者:行者123 更新时间:2023-11-28 14:55:12 25 4
gpt4 key购买 nike

当用户在模态元素之外按下时,我试图关闭模态。不知何故,当调用 Dismiss() 时,回调中的状态仍然相同。

为什么会发生这种情况?

export default class Message extends React.Component {
constructor(props) {
super(props);
this.state = {
id: "",
show: false
};
}

componentDidMount() {
this.props.onRef(this);
}

Show(id) {
this.setState({
id: id,
show: true
});
}

Dismiss() {
this.setState({
id: '',
show: false
}, function (state) {
console.log(state) // undefined
});
}

render() {
if (this.state.show) {
return (
<Modal close={() => this.Dismiss()}>
<h1>{this.state.id}</h1>
</Modal>
);
} else {
return null
}
}
}

最佳答案

不确定为什么回调中有一个状态参数,应该是

Dismiss() {
this.setState({
id: '',
show: false
}, function () {
console.log(this.state)
});
}

关于javascript - 为什么 setState 返回未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43162624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com