reactjs - 为什么子组件不随父组件的状态更新?

标签 reactjs

我将父状态传递给子组件,但是当我在子组件中打印 props 时,我得到的是父组件的先前状态,而不是最新状态。我很确定这是因为 this.setState 是异步的。

  handleClick(event) {
   const value = event.currentTarget.value;
   this.setState({ touched: value });
  }

 render() {
  return(
   <ChildComponent {...this.state} />
  )

 }

最佳答案

componentWillReceiveProps 是在组件更新渲染之前。 If you read the docs他们解释说你可以引用下一个即将到来的 Prop 。

componentWillReceiveProps(nextProps, nextState){
    this.props.something // old value
    nextProps.something // new value
}

现在渲染完成后是否发生更新。

componentDidUpdate(previousProps){
    this.props.somehting // new value
    previousProps.something // old value
}

您的问题是您在新 Prop 发生更改以更新旧 Prop 之前打印出旧 Prop 。您需要的是 componentDidUpdate 或查看下一个传入的 props

关于reactjs - 为什么子组件不随父组件的状态更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42462792/

相关文章:

javascript - 即使在我运行 MediaStreamTrack.stop() 之后网络摄像头灯仍然亮着

javascript - Reactjs 上的事件处理

css - 在 react 中呈现嵌套表行

javascript - 使用 Axios 等待服务器响应的时间

node.js - 异步初始化 React.js 组件的服务器端渲染策略

reactjs - 将网格置于 View 内的中心

javascript - 在 React Native Expo 上,图像未显示在 Android 设备上

javascript - 渲染到通过 jQuery 插入到 DOM 的元素

javascript - 如何在 react 中设置多个复选框的处理程序?

javascript - react 路由器 : run is not a function