我想在其他组件中分派某事后运行函数(承诺不是我的解决方案) 例如,我想在组件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,
});
}
}
`