我尝试按照React.js的教程进行操作,但未定义不是对象错误,我确实有两个具有不同类的屏幕,第一个是用户选择某些配料时的仪表板,然后将此列表发送到第二个屏幕Search.js
一切正常,但是无法更新该屏幕上显示的结果,因为我在componentDidMount内调用了api,我试图didUpdate不会做任何更改!
所以我父屏幕中的代码是这样的:
switcher() {
const { navigate } = this.props.navigation;
navigate('Select', {passedData:this.state.selectedIngredients});
this.refs.search.apicall()
}
然后在另一个屏幕上,我获得了此功能:
apicall() {
const { navigation } = this.props;
const passedData = navigation.getParam('passedData', 'default value');
let selectedIngredients = passedData;
fetch(url)
.then((response) => response.json())
.then((responseJson) => {
this.setState({
data: responseJson.results,
loading: false,
});
})
}
componentDidMount() {
this.apicall()
};
错误:
未定义不是对象(正在评估this.refs.search.apicall)
我的目标是删除componentDidUpdate并创建一个函数来刷新或更新Search.js
屏幕上显示的结果。还具有处理(运行)来自不同类的功能的能力。有人可以帮忙吗?