をstate
またはrefs
である。親から渡された小道具として値を設定するか、またはstateful
のコンポーネントにするかの2つのオプションがあります。
Stateless
コンポーネントは、レンダリング専用のダムコンポーネントでなければならず、すべてのロジックはstateful parent component
になければなりません。彼らはあなたがへの参照が必要な場合instances.Youはクラス にコンポーネントを変換する必要があります持っていない ので、あなたは機能部品のref属性を使用することはできませんdocs
によると
あなたが最初のケースで、ライフサイクル 方法や状態
を必要とするときあなたがちょうど同じように、
function Inventory(props){
let items = ['milk', 'bread', 'butter'],
itemInput = items.map((val,index) => {
return(
<div key={index}>
<h3>{val}</h3>
<input type={'text'} value={props.childInput[val] || '' } onChange={(e) => props.handleChange(e, val)}/>
</div>
)
})
return(
<div>
{itemInput}
</div>
)
};
そして親が
<Inventory handleChange={this.handleChange} childInput={this.state.childInputVal}/>
handleChange = (e, key) => {
var childInputVal = {...this.state.childInputVal}
childInputVal[key] = e.target.value
this.setState({childInputVal})
}
state = {
childInputVal: {}
}
他のオプションのようなロジックを持っていますが、このコンポーネント自体ステートフルなコンポーネント
class Inventory extends React.Component {
state= {
inputValues: {}
}
handleChange = (e, val) => {
handleChange = (e, key) => {
var childInputVal = {...this.state.inputValues}
inputValues[key] = e.target.value
this.setState({inputValues})
}
render() {
let items = ['milk', 'bread', 'butter'],
itemInput = items.map((val,index) => {
return(
<div key={index}>
<h3>{val}</h3>
<input type={'text'} value={this.state.inputValues[val] || '' } onChange={(e) => this.handleChange(e, val)}/>
</div>
)
}
return(
<div>
{itemInput}
</div>
)
}
@lightspeed、このソリューションは、機能性成分のために働くようにすることですか? ?????????????? –
これをステートフルなコンポーネントに変換した後、動作します。ありがとうございます。 – lightspeed