マップをクリックしたときに特定のアイコンの色を変更しようとしていますが、色は変更されません。クリックすると色が変わる小さなプロジェクトをすでに実行しましたが、違いは次のとおりです。このプロジェクトではuseState
、を使用しましたが、ここではRedux Stateを使用していますが、これを行う方法がわかりません。
function handleRetweetColor(id) {
console.log("ID: " + id);
props.post.postReducer.map(post => {
if(post.id === id) {
console.log(post)
return { ...post, retweet: true }
}
return post;
})
}
return (
<div className="posts-container">
{props.post.postReducer.map(post => {
return (
{console.log(post)} <------ value in the image
<div className="post" key={post.id}>
<div className="bottom-content">
<div onClick={() => handleRetweetColor(post.id)} >
<FaRetweet size={20} style={{ color: post.retweet ? "#35e95f" : "#ccc" }} />
</div>
</div>
</div>
)
})}
</div>
)
あなたのhandleRetweetColor
関数は何も返しません。しかし、たとえそうだったとしても、あなたはそれで何もしません。で呼び出すだけclick
です。
reduxストアを更新する場合は、を呼び出してaction
渡す必要がありid
ます。レデューサーでは、reduxストアを変更してretweet
をtrueに設定します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加