无法调用组件上的函数无法找到变量

时间:2018-01-19 23:57:28

标签: javascript react-native

我目前仍然坚持以下问题。

我将此作为我的navigationOptions:



static navigationOptions = ({navigation}) => {
    const { state, setParams } = navigation;
    return {
      title: 'Test',
      headerRight: <Button title="Send" onPress={() => {
        uploadImageAsync();

      }}/>
    };
  };
&#13;
&#13;
&#13;

我有一个名为uploadImageAsync()的函数,当我尝试从这里调用它时,我得到错误cannot find variable uploadImageAsync。我也试过this.uploadImageAsync(),但无济于事。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

静态navigationOptions的问题。您无法从静态分配中访问组件中的this或任何内容。您需要将此函数移动到redux调用或可以使用的全局函数。您也可以通过导航道具发送它。这可以通过

设置
this.props.navigation.navigate(
    'NewPage', 
    {uploadImageAsync: uploadImageAsync}
    /* ^- The assignment in a higher component from the navigate call*/
 )

然后通过navigation.state.params.uploadImageAsync()

进行访问