我面临有关将父状态更新为子组件的问题。 我是新来的本地人,所以如果有更好的主意,请指导我。
我正在做的是,标题中有搜索栏,并且我在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>
);
}