开发者问题收集

undefined 不是对象(评估“this.props.navigation”)反应导航

2018-04-16
687

我在 React Native App 中使用 React Stack Navigator。我的导航道具有问题。

这是我调用导航方法的组件。

class CommandsList extends React.Component {
    constructor(props){
        super(props);
    }


    addCommand(){
        this.props.navigation.navigate("CreateCommand");
    }
    render() {
        return (
            <SafeAreaView style={{flex:1}}>
                <MyList itemsUrl="http://localhost:9000/commands"/>
                <Button title="Ajouter" onPress={this.addCommand}></Button>
            </SafeAreaView>
        );
    }
}

export default StackNavigator({
    CommandsList : {
        screen : CommandsList,
    },
});

还有我的 App.js

const RootStack = StackNavigator(
    {
        CommandsList: {
            screen: CommandsList,
        },
        CreateCommand: {
            screen: CreateCommand,
        }
    },
    {
        initialRouteName: 'CommandsList'
    }
);

export default class App extends React.Component {
    render() {
        return <RootStack/>;
    }
}

我不明白为什么导航方法会出现错误。:/

1个回答

您需要在构造函数中使用 bind 或使用 fat arrow 函数将 this 引用到 context 来绑定您的引用。

addCommand = () => {
        this.props.navigation.navigate("CreateCommand");
}

constructor() {
   super()
   this.addCommand = this.addCommand.bind(this);
}

您也可以查看此 文章

Pritish Vaidya
2018-04-16