在绑定到redux状态后,React对象不会更新

时间:2017-08-09 13:38:52

标签: reactjs redux

我有一个带有以下构造函数的react组件:

constructor(props) {
  super(props);
  this.state = {
    url: props.url,
    status: props.status
  }
  ...
}

以下范围标记:

render() {
  return (
    <div className="ConnectionPanel">
      ...
      <span>{this.state.status}</span>
      ...
    </div>      
  )
}

我的mapStateToProps看起来像:

const mapStateToProps = (state) => ({
  url: state.websocket.url,
  status: state.websocket.status  
})

state.websocket.status的初始值会被呈现,但是当它从外部更新时,span标记不会。

我无法弄清楚为什么我的绑定方式不正确,以及如何修复它。

1 个答案:

答案 0 :(得分:4)

state更新时,您可能无法更新props。您可以使用生命周期方法来处理此问题,但更好的方法是首先使用props

render() {
  return (
    <div className="ConnectionPanel">
      ...
      <span>{this.props.status}</span>
      ...
    </div>      
  )
}