javascript - 变量不会同时从 React setState 改变

标签 javascript reactjs

我们有一个工作流程中的用户表,其中每个用户根据他们在工作流程中所处的步骤而具有不同的状态。为便于示例,假设从 1-4 有 4 个步骤。

每个用户在他们的表格行上都有一个按钮,单击该按钮会打开一个模式,该模式会获取他们的用户 ID 和当前步骤作为数据值。

handleClick = (event) => {
    let step = event.target.dataset.step;
    let id = event.target.dataset.id;
    this.setState({ currentStep: step, userId: id, moveUserModal: true });
}
.........
<Modal
    isOpen={this.state.moveUserModal}
>
    <UserModal step={this.state.currentStep} userId={this.state.userId} close={this.close} />
</Modal>

在模态中:

constructor(props) {
    super(props);
    console.log(this.props);
}

控制台日志为两个变量返回 undefined,为关闭返回 f()。如果 moveUserModal 为真,是否有其他变量不具有构造函数可以访问的值的原因?

最佳答案

没有什么能阻止您的 UserModal 从一开始就进行 mouting。

当你的父组件正在挂载时,你的 UserModal 也在挂载,并且已经调用了未定义的构造函数。

也许可以试试:

<Modal isOpen={this.state.moveUserModal} >
    this.state.moveUserModal && <UserModal step={this.state.currentStep} userId={this.state.userId} close={this.close} />
</Modal>

关于javascript - 变量不会同时从 React setState 改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51969682/

相关文章:

javascript - jQuery:我们如何实现 if...else 逻辑和调用函数

reactjs - 测试 react 组件时出错 - SecurityError

javascript - react 钩子(Hook) : Why do several useState setters in an async function cause several rerenders?

javascript - 数组更新时 ReactJS 组件更新

javascript - React Router 更改 URL 但不会更新页面,除非从浏览器刷新页面

javascript - 使用 jQuery 将大列表拆分为三个等高列表

javascript - 如何使模块兼容 CORS?

javascript - 使用 React JS 进行分页

reactjs - Nextjs css 闪烁

javascript - Jshelper cakephp 未从元素获取数据