如何在react.js中监听状态变化?
React.js中angular度的$ watch函数是什么?
我想监听状态更改并调用getSearchResults()之类的函数。
componentDidMount: function() { this.getSearchResults(); }
我没有使用Angular,但阅读上面的链接,似乎你正在尝试编码的东西,你不需要处理。 在React组件层次结构中(通过this.setState())进行状态更改,React将使组件重新呈现(有效地“侦听”更改)。 如果您想从层次结构中的其他组件“侦听”,则有两个选项:
- 将处理程序从通用父项传递给(通过道具),并让它们更新父项的状态,导致父项下面的层次被重新渲染。
- 另外,为了避免处理程序级联下来,你应该看一下flux模式 ,它将你的状态移动到数据存储区,允许组件观察它们的变化。 Fluxxor插件对于pipe理这个非常有用。
状态更改时将调用以下生命周期方法 。 您可以使用提供的参数和当前状态来确定是否有意义的改变。
componentWillUpdate(object nextProps, object nextState) componentDidUpdate(object prevProps, object prevState)
我认为你应该使用低于组件生命周期,就好像你有一个input属性,更新需要触发你的组件更新,那么这是最好的地方,因为它会被调用之前,你甚至可以做更新组件状态反映在视图上。
componentWillReceiveProps: function(nextProps) { this.setState({ likesIncreasing: nextProps.likeCount > this.props.likeCount }); }