react中通过props给子组件传值,为什么当父组件setState后props不能同步更新

父组件代码

class AssetDetail extends React.Component {
  state={
    asset: {}
  }
  render() {
    return (
      
    )
  }
}

当父组件setState变化asset值,就会重新渲染
子组件使用asset里的属性做渲染,直接使用this.props.asset.属性名可以实时刷新

class AssetMarket extends Component {
  render() {
    
{ this.props.asset.stratified.buy.map((item, index) => {item.price} {item.number % 1000000 === 0 ? parseFloat(item.number / 1000000) : parseFloat(item.number / 1000000).toFixed(3)} ) }
} }

这里因为子组件是拿asset里的某个属性做渲染,所以父组件里直接使用


这样只是里面的某个属性的值发生了变化,没有觉得asset发生变化,所以子组件不能重新渲染

所以使用


重新new 一个asset对象

第二种解决方案,将需要实时刷新的值直接传给子组件


子组件

this.props.stratifiedBuy

也可以实现实时刷新

你可能感兴趣的:(react中通过props给子组件传值,为什么当父组件setState后props不能同步更新)