如何更新子组件的道具?

时间:2019-01-17 08:24:51

标签: javascript reactjs components

我有一个待办事项列表应用程序,它从服务器获取数据。然后我有一个搜索子组件,它以父对象的状态作为道具,然后当您搜索某些内容时,它会过滤并更新父状态并传递新的过滤状态。

直到一切正常,但当我尝试从该搜索列表中删除某些内容,然后又搜索相同的内容时,它已经给我删除了笔记。

简而言之,当删除后其父状态已经更新时,我认为它不会更新搜索组件的道具。

我该如何解决?

我正在使用React JS)

1 个答案:

答案 0 :(得分:0)

您需要的是componentDidUpdate组件中的SearchBar

componentDidUpdate(prevProps) {
    if (this.props.data !== prevProps.data) {
        this.setState({data: this.props.data ,filteredData: this.props.data});
    }
}

更好的解决方案是不将data作为状态存储在SearchBar中,只是直接从道具中访问它