在我的本机项目的另一个组件中分派后执行函数

时间:2018-09-05 11:37:41

标签: reactjs react-native redux react-redux

我想在其他组件中分派某事后运行函数(承诺不是我的解决方案) 例如,我想在组件1中调度此对象,然后在负责启动动画对象的组件中执行功能

1 个答案:

答案 0 :(得分:0)

Redux的一种解决方案是使用mapStateToProps来监听商店中的更改。

示例: userState = {isLoggedIn: false}

A-调度loginSuccessAction

B-在减速器中更改用户并将其设置为```LoggedIn:true``

C-具有isLoggedIn的mapStateToProps

D-更改监听组件中的任何内容


`

// Action
const loginSuccess = {type: loginSuccess }

//

//Reducer 
export function reducer( state = initialState, action){
  switch (action.type) {
      case loginSuccess.type: {
          return {
            ...state,
            isFetching: false,
            isLoggedIn: true,
            errorMessage: '',
          };
       }
       case logoutRequest.type: {
           return initialState;
        }
        default:
            return state;
        }
    }
}

// MapStatetoPros Other Component listening to isLoggedIn
function mapStateToProps(state) {
    return {
        isLoggedIn: state.user.isLoggedIn,
    };
}

// When props change other component
componentWillReceiveProps(nextProps) {
    if (this.props !== nextProps) {
        this.setState({
            isLoggedIn: nextProps.isLoggedIn,
        });
    }
}

`