阻止子组件重新渲染,以更改父状态

时间:2018-03-26 14:36:10

标签: reactjs

所以我的子组件中有一个微调器,每当父组件更新其状态时,它会重新呈现包括子组件在内的所有内容,这使得子组件的微调器出现在父级的每次状态更改中。

有没有办法阻止这种情况,以便微调器只出现在父状态的某些变化上?

2 个答案:

答案 0 :(得分:1)

我假设你将父州作为道具传给了孩子。您可以使用ShouldComponentUpdate生命周期方法,以防止来自父项的道具不需要更新子项时重新呈现子项。

答案 1 :(得分:1)

我不确定你的代码是什么样子但是我认为你有两个选择:

class MyClass extends React.Component {
  constructor(props) {
    this.state = { showSpinner: true }
  }
  
  componentDidMount() {
    myAsyncFetch.done((data) => {
      this.setState({ showSpinner: false })
    })
  }
  
  render() {
    if (this.state.showSpinner) {
      return <Spinner/>;
    }
    
    return <div/>; // Content
  }
}

相关问题