我只是想處理反應,所以我的問題可能看起來很簡單,但我仍然堅持它。將文本區域值保存爲與ReactJs div
我有兩個塊(div.user-data__row),其中有一些值。我更改組件的狀態(handleChange函數),這些塊被替換爲文本字段(textarea.text)的狀態,我希望當我單擊保存按鈕並調用saveChange函數時,每個文本字段的值被傳送到塊(第1個文本區到第1個塊等)。
我找到了使用ref屬性來解決類似情況的例子,但後來發現這不再是一個實際的解決方案,因此也沒有人會這樣做。請幫我看看實際的實現路徑。
class UserData extends React.Component {
constructor(props) {
super(props);
this.state = {
edit: true,
};
this.handleChange = this.handleChange.bind(this);
this.saveChange = this.handleChange.bind(this);
}
handleChange() {
this.setState(() => ({
edit: !this.state.edit,
}));
}
saveChange() {
this.setState(() => ({
edit: false
}))
}
render() {
if (this.state.edit) {
return (
<div className="user-data">
<div className="user-data__row">{this.props.userData.name}</div>
<div className="user-data__row">{this.props.userData.email}</div>
<button onClick={ this.handleChange }>Edit</button>
</div>
);
} else {
return (
<div className="user-data">
<textarea className="text" defaultValue={this.props.userData.name}></textarea>
<textarea className="text" defaultValue={this.props.userData.email}></textarea>
<button onClick={ this.saveChange }>Save</button>
</div>
)
}
}
}
感謝您的好解釋,先生! –
歡迎Valdimir。 –