在2个制表符之间传递数据

时间:2019-03-25 23:24:40

标签: react-native react-navigation react-native-tabnavigator

我正在构建一个包含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中获得返回到PaymentsScreen的{​​{1}}

谢谢

1 个答案:

答案 0 :(得分: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');
    };
}

getParamgetParam可以解决您遇到的问题……但是我想这个用例通常由{{ 3}}或redux就像@爱迪生(Edison)在其评论中提到的...