アクションの後にコンポーネントを再レンダリングするのに問題があります。私は減速に新しいオブジェクトを返す必要があることを理解し、私は全く新しい状態を返すんだけど、その、まだcomponentDidMount()
またはrender()
をトリガしませRedux ComponentDidMountが起動しない
マイコンポーネント:
class AppTemplate extends React.Component {
constructor(props) {
super(props);
if(!this.props.settings.user){
this.props.dispatch(userActions.get());
}
}
componentDidUpdate(prevProps, prevState) {
console.log(prevProps, this.props);
//do some stuff
}
render() {
return (
<SomeComponent/>
);
}
}
function mapStateToProps(state) {
const { registration, role, settings } = state;
console.log(role);
return {
registration,
role,
settings
};
}
const connectedAppTemplate = connect(mapStateToProps)(AppTemplate);
export { connectedAppTemplate as AppTemplate };
マイリデューサー:
export function role(state = { role : null, loading: true }, action) {
switch (action.type) {
case 'USER_GET_PENDING':
return {
role:null,
loading: true
}
case 'USER_GET_FULFILLED':
const role = action.payload.data.roles[0];
const newState = {
role: role,
loading: false
}
console.log(state, newState);
console.log(state == newState);
return newState;
default:
return state
}
}
アクションは問題なく実行されており、mapToStateでさえも新しいロールでログに記録されますが、componentDidMountは決して起動しません。何かご意見は?
ありがとうございます!
'componentDidMount'はどこですか? –
答えがあなたに役立つならば、指定された回答を受け入れたものに必ずマークしてください... –