これは簡単なはずですが、私が必要とする簡単な答えは見つかりません。React Reduxレデューサーの配列オブジェクトを更新してください
const posts = (state = null, action) => {
switch(action.type){
case "PUBLISH_POST":
return state;
case "UNPUBLISH_POST":
return state;
default:
return postList;
}
}
私はID
年代とstatus
との投稿のリストを持っている:私は、減速機を持っています。私は自分の投稿IDを送信していますが、クリックされた項目のstatus
を0から1に更新するロジックを理解することはできません。私は多くのハーフソリューションを見つけましたが、それらはすべて冗長で醜いように見えます - この場合、それを達成する最短/最善の方法は何ですか?
例データ:単純にそれのためspread operatorを使用
{
type: 'UNPUBLISH_POST',
payload: {
id: 1,
user: 'Bob Smith',
content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque vulputate mauris vitae diam euismod convallis. Donec dui est, suscipit at dui vitae, sagittis efficitur turpis. ',
status: 1
}
}
:
const posts = (state = null, action) => {
switch(action.type){
case "PUBLISH_POST":
case "UNPUBLISH_POST":
const index = this.state.findIndex(post => post.id === action.payload.id)
return [
...state.slice(0, index), // everything before current post
{
...state[index],
status: action.type === 'PUBLISH_POST' ? 1 : 0,
},
...state.slice(index + 1), // everything after current post
]
default:
return postList;
}
}
あなたはどのように見えるのですか?投稿の配列ですか? – mersocarlin
@mersocarlinはい、上記の例 –
アクションペイロードとは何ですか? – Jaxx