2017-08-09 43 views
0

後,我有以下構造一個反應組件對象將不會更新:招標作出反應,以Redux的狀態

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

而下面span標籤:

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標籤外更新的標籤不是。

我不明白爲什麼我的綁定方式不正確,以及如何解決它。

+0

你應該避免內部狀態,而使用狀態管理器(例如,REDX) – Hitmands

回答

4

props得到更新時,您可能不會更新您的state。您可以使用生命週期方法來處理此問題,但更好的方法是首先使用props

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

更有意義,謝謝! – galah92