当有条件地卸载父组件时,将父组件的更新状态传递给子组件会产生本机响应

时间:2019-01-30 05:53:37

标签: javascript reactjs react-native setstate

我面临有关将父状态更新为子组件的问题。 我是新来的本地人,所以如果有更好的主意,请指导我。

我正在做的是,标题中有搜索栏,并且我在Feed组件上。在搜索栏中键入内容时,我正在Feed组件中获取更新的文本,并且它的工作正常。

当我专注于搜索栏时,提要组件上的全局搜索组件将有条件地呈现在提要组件上。

现在我需要将该文本传递给全局组件。为此,我要从标题搜索栏接收文本,并将其传递给提要组件,然后更新提要组件的状态并将该状态传递给子全局搜索组件。

  

整个代码工作正常,但是我现在所面临的状态   总是落后1步。例如,如果我输入“ sha”,它将返回我“ sh”   而不是“ sha”。

     

其次,我收到警告“无法执行反应状态   更新未安装的组件”,这是因为提要组件   我认为是卸载的。

请帮助。

我提要组件中的代码是

  

从标题中绑定此功能

Searchhandlecallback = (props) => {
    this.setState({
        FeedSearchText: props
    });
}
  

然后在视图部分中,我正在渲染全局搜索组件   有条件的

render() {

    // If the search bar focus and on feed page then show the global component for recent / popular searches.

    if (this.state.searchFocused && this.CurrentRoute == 'feed') {
        const params = 'Feed';
        return (<GlobalSeach route={params} FeedSearchText={this.state.FeedSearchText} />)

    }

    // Else show the landing page of app

    return (

        <View style={styles.container}>
            <Text style={styles.welcome}>Feed!</Text>
            <Button title="Go to Detail Page" onPress={() => this.props.navigation.navigate('detail')} />
        </View>

    );
}

0 个答案:

没有答案