React-Reduxの別の要素をクリックして要素のクラスを切り替えたいとします。他のをクリックして要素のクラスを追加したり削除する方法は? React-reduxで
2
A
答えて
0
reduxの実装では、最初の要素からclickイベントに対してアクションをディスパッチします。 2番目の要素はその状態(1つは小道具の1つ)から派生したクラスを持つので、クリックに応じて変更されると、新しいクラス名で再レンダリングされます。
慣用的な使い方では、おそらく両方の要素が小道具とディスパッチされたイベントを編成したコンテナコンポーネントにラップされています。通常メソッドを使用して接続します。
4
私はこれを行うには、次の手順に従って、この問題を解決:クリックが行われ
要素:
class readMore extends Component {
constructor(props) {
super(props);
this.state = {classToSend: true };
}
stateToRender(){
(this.state.classToSend) ? this.setState({classToSend: false}) : this.setState({classToSend: true});
}
onClickHandler(){
this.stateToRender();
this.props.readMore(this.state.classToSend);
}
render(){
return (
<div onClick={() => this.onClickHandler()}
className="readmore">
<div className="readmore-btn">Read more</div>
</div>
);
}
}
アクション作成者:
export function readMore(class_something) {
return {
type: READ_MORE,
payload: class_something
};
}
がリデューサー:
export default function (state="", action) {
switch(action.type){
case READ_MORE:
return action.payload;
}
return state;
}
オースクラスが変更になっているEr元素:
export class XYZ extends Component{
constructor(props){
super(props);
}
renderClassNames(){
let classname = "slide-tourInfo";
if (this.props.readMore) {
classname += " slide-tourInfo-scale";
}
return classname;
}
render(){
return(
<div className = {this.renderClassNames()}>
</div>
)
}
}
1
export default class MyClass extends Component{
constructor(props){
super(props);
this.state {
toggleClass: false
}
}
toggleFunction =() => {
this.setState({toggleClass: !this.state.toggleClass})
}
render(){
return(
<div>
<button onClick={this.toggleFunction}>ClickMe</button>
<div className={this.state.toggleClass?'classOnTrue':'classOnFalse'}></div>
</div>
)
}
}
+0
これは還元されていません。状態をローカルで変更しています。 – kunal
関連する問題
- 1. クリック時のクラスを削除して別の要素に追加
- 2. CSSクラスをクリックして要素に追加する方法 - React
- 3. 他の要素に追加するときにjQueryクラスを削除します
- 4. 範囲スライダーで要素のクラスを追加または削除
- 5. クラスで要素を取得し、JavaScriptで属性を追加/削除する方法は?言及した以下
- 6. 既存の要素の後に要素を追加してリンクされたリストで削除する方法[Java]
- 7. クリックしたクラスの要素だけを表示し、jQueryで他の要素をすべて隠す方法
- 8. 別のクリックでdivにクラスを追加し、そのdiv要素とchild要素以外のbodyがクリックされた場合はクラスを削除
- 9. クラスを追加して削除する方法と、JqueryでCookieを設定して削除する方法を
- 10. クリックしてクラスを追加/削除する、Jquery
- 11. 編集可能なdivの高さの変更を使用して、他のDOM要素にクラスを追加したり削除したりできます。
- 12. JavaScriptタイマーでアンカー要素にクラスを追加して削除する
- 13. 追加後にドキュメントフラグメント内の要素を削除する方法
- 14. 要素を追加し、Javascriptで追加された特定の要素を削除します
- 15. jQuery |クリック時のクラスの追加/削除|
- 16. haskellの要素を追加して削除した後にリストを保存する方法は?
- 17. Java:ArrayListから要素を削除してテキストを追加する
- 18. 他のすべてを削除し、クリック時にチェックマークを追加する
- 19. 追加と削除クラスをクリック
- 20. vanilla javascriptを使用して別の要素をクリックした後に別の要素にクラスを追加/削除する
- 21. Beginner React query(要素を削除して別の要素を追加する方法)
- 22. ボタンをクリックして親divを他のdivに追加/削除する
- 23. 配列内の要素を追加または削除する
- 24. 別の要素をクリックして最近追加された要素を制御する方法は?
- 25. 配列に要素を追加して削除する
- 26. jQueryを使用してクリックした要素のスタイルを変更し、同じクラスの他の要素からそのスタイルを削除する
- 27. クリックしてJqueryモーダルを追加してからクラスを削除します
- 28. CSSをフェードイン/アウトする方法クラスの追加時または削除時の擬似要素
- 29. HTML要素から追加クラスを削除できません。
- 30. クラスを介して追加されたアクションを削除する方法
あなたはReduxのを使用する理由があるかもしれませんが、また、あなたの店に複雑さを増すことなく、この使用したコンポーネントの状態を解決することができるかもしれません。 –