首页 > 解决方案 > 如何使用redux将获取的数据从服务器传递到堆栈导航器之外的多个屏幕?

问题描述

我有一个从 mysql 数据库中获取用户信息的登录功能。我想将此数据发送到不同的屏幕,其中一些屏幕超出了堆栈导航器。我研究了一段时间,才知道这可以使用 redux 来完成,但我找不到一个明确的例子来说明如何实现这一点。关于如何做到这一点的任何建议?

这是我的登录功能:

login = () => {
    if (this.state.inputFieldsStatus == true)
        {  
            // this.setState({passwordError:" Something went wrong! "})
            fetch('http://ip_Adress/login', {
                method: 'POST', // *GET, POST, PUT, DELETE, etc.
                headers: {
                    'Accept': 'application/json',
                    'Content-Type': 'application/json'
                },
                body: JSON.stringify({
                    email: this.state.email,
                    password: this.state.password,
                })
            })
            .then((response) => response.json())
            .then((res) => {

                // alert(JSON.stringify(res.message));
            
                if (res.success === true ) {
                    // AsyncStorage.setItem('user', res.user);
                    this.props.navigation.navigate('Home', 
                        // {
                        //     screen: 'Messages',
                        //     params: 
                        //         {
                        //             message: res.message,
                        //             otherParam: 'anything you want here'
                        //         } 
                        // },
                        {
                            screen: 'Profile',
                            params: 
                                {
                                    message: res.message,
                                    otherParam: 'anything you want here'
                                } 
                        }
                    );
                } else {
                    this.setState({passwordError: res.message })
                    // alert(res.message);
                }
            })
            .done();
        }
        else 
            {
                // alert(' Please fill in all fields! ');
                this.setState({passwordError:" Please fill in all fields! "})
            }
}

标签: react-nativereduxreact-reduxredux-thunkreact-redux-form

解决方案


推荐阅读