从另一个屏幕更新子组件以响应本机

时间:2018-09-14 00:09:36

标签: javascript reactjs react-native jsx

我尝试按照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屏幕上显示的结果。还具有处理(运行)来自不同类的功能的能力。有人可以帮忙吗?

0 个答案:

没有答案