ここでは、Stack Overflowで関連するすべての質問を試しましたが、この問題の解決策はまだ見つかりませんでした。Reduxはコンポーネントの小道具を更新しません
私はme
というレデューサーを持っており、folders
というオブジェクトの配列を更新しようとしています。me
レデューサーを更新するとコンポーネントが更新されません。ここで
は、私は私のコンポーネントで減速を更新しています方法は次のとおりです。
class ComponentA extends Component {
...
updateUploadedFiles(file) {
console.log(this.props.store);
const newFolders = this.props.me.folders.map(
folder =>
folder._id === file.parent._id
? {
...folder,
files: [...folder.files, file.file]
}
: folder
);
this.props.updateMe({
...this.props.me,
folders: newFolders
});
}
...
}
function mapStateToProps(state) {
return {
me: state.me,
path: state.path,
filesToUpload: state.uploads
};
}
function mapDispatchToProps(dispatch) {
return bindActionCreators(
{
updatePath,
updateMe,
updateUploads
},
dispatch
);
}
export default connect(mapStateToProps, mapDispatchToProps, null, {
pure: false
})(Upload);
これは私のupdateMe
アクションのコードです:
export const updateMe = state => ({
type: "UPDATED_ME",
payload: state
});
そして、これはme
減速機のコードです:
export default function(state = "NOT_AUTHENTICATED", action) {
switch (action.type) {
case "UPDATED_ME":
return action.payload;
default:
return state;
}
}
また、私はレデューサーを組み合わせています:
リダクションは、アクションがトリガされたときにアプリケーションの状態を更新する機能です。あなたのコードではthis.propsが使用されているので、あなたのコードは減速機ではなくコンポーネントから来ていると思います。コンポーネントから状態を更新しようとしていますか?あなたのコードに関するもう少しコンテキストを教えてください。 – DiegoTArg
@DiegoTArgええ、上のコードはコンポーネントからのものです。私はしようとしている、私はコンポーネントからupdateUploadedFiles関数を呼び出して(それを 'ComponentA'と呼ぶ)、それは減速器'私は 'を更新し、' ComponentA'の小道具を更新する必要があります –