0

我正在构建一个包含TabNavigator. 我如何在第一个屏幕中初始化我在第二个屏幕中也需要的数据。我想知道在这些屏幕之间传递参数的最佳方式是什么

我尝试Navigation.setParams()从第一个屏幕使用,但在第二个屏幕上我没有得到它。

const PaymentsStack = createStackNavigator({
        Payments: {
            screen: PaymentsScreen
        }
    }
);

const GraphsStack = createStackNavigator({
    Graphs: GraphsScreen
});

createBottomTabNavigator({
    PaymentsStack,
    GraphsStack
});
class PaymentsScreen extends Component {
    async componentDidMount() {
        const importantData = await GetDataFromServer();
    };
}
class GraphsScreen extends Component {
    async componentDidMount() {
        const importantData = ??;
    };
}

我想知道如何让importantData那个返回PaymentsScreenGraphsScreen

谢谢你

4

1 回答 1

0

你可以通过getParamsetParam

class PaymentsScreen extends Component {
    async componentDidMount() {
        const importantData = await GetDataFromServer();
        this.props.navigation.setParams({ importantData });
    };
}


class GraphsScreen extends Component {
    async componentDidMount() {
        const importantData = this.props.navigation.getParam('importantData');
    };
}

getParam&getParam可以在您遇到问题的情况下解决问题......但我想这个用例通常由流行的全球状态管理工具之一管理,如redux@Edison在他的评论中提到的未说明......

于 2019-03-26T04:21:21.867 回答