設計の説明
React
子クラス (モジュール) 内から呼び出される矢印関数を持つクラスがあります
。これは単純に呼び出されsaveData
、その目的は、保存先の各モジュールに固有の入力値を保存することstate
です。さて、私のデフォルト状態にはデフォルトの小道具があります(static defaultProps
):
state = {
a : this.props.initialA,
b : this.props.initialB,
c : ...
}
そして、このsaveData
関数は、入力値を子クラスから親の特定の状態プロパティにプッシュすることになっている太い矢印関数です。
saveData = (val) => this.setState( {a : val} )
各子クラスは、saveData
JSX で渡された関数を取得し、独自の入力を持ちます。ボタンがクリックされると、値をパラメーターとして関数を呼び出します。
/* A child class */
pushData = (e) => {
e.preventDefault()
const val = this.refs.a.value
this.props.saveData(val)
}
render() {
return(
<input id='a' ref='a' ... />
<button onClick={this.pushData} ... />
)
}
これで大丈夫です!今、私の懸念のために
ご覧のとおり、状態プロパティa
は上記の例でハードコーディングされています。これは私が望むものではありません。別のパラメーターに状態プロパティを設定させたいと思います。これは、頭の中で次のように単純にすることができます。
/* In parent class */
saveData = (prop, val) => this.setState( {prop : val} )
/* In child class */
pushData = (e) => {
...
const val = this.refs.a.value,
prop = a;
this.props.saveData(prop, val)
}
このアプローチで私が直面する問題は次のとおりです。
- アロー関数がパラメーターを受け入れないことを正しく理解しましたか? 私は完全に使用
(e)
してpushData
おり、(val)
以前saveData
は私のために働いていたからです. - 重要な点:どのように説明しても、プロパティは
this.setState({prop:val})
割り当てられません。まったく異なる内容の変数、パラメーター、または残りのパラメーターでprop
あっても、呼び出される新しいプロパティを追加するだけです。prop
...setState({prop...
子クラスによって割り当てられる方法はありますか?
(それとも、私が複雑すぎるのでしょうか? 考えていないのでしょうReact
か? React で考えるのは、考えているようなものだと感じることがあります$con"!"\˜*.ht"&&su20%+o?else{((())...())}of
)