0
編集をクリックすると入力バーが表示されます。保存ボタンをクリックするとユーザーの入力が得られますが、なぜ私は未定義ですか?コンソールにエラーはありません。this.refs.something.valueは反応で未定義を返します
http://jsfiddle.net/2onzybk6/2
var App = React.createClass({
getInitialState() {
return {
items : [1, 2, 3],
isEdit: null
};
},
renderEditForm() {
return (
<div>
<input type="text" ref="newItem" />
<button onClick={ this.saveHandler }>Save</button>
</div>
);
},
ItemCtrl(index) {
if (index != this.state.isEdit) {
return (
<div className="itemCtrlWrap">
<button onClick={ this.editHandler.bind(this, index) }>Edit</button>
</div>
);
}
},
editHandler(i) {
this.setState({ isEdit: i });
},
saveHandler() {
console.log(this.refs.newItem.value); // why is this undefined?
this.setState({ isEdit: null });
},
renderItem() {
return (
this.state.items.map((item, i) =>
<li key={ i }> {this.state.isEdit == i ? this.renderEditForm() : item} {this.ItemCtrl(i)}</li>)
);
},
render() {
return (
<ul>
{this.renderItem()}
</ul>
);
}
});
nice catch buddyありがとうございます。 1つの質問、私は状態を変更すると入力フィールドの値が消えてしまうのはなぜですか?私はその部分を変更していない、私のために反応しますか? – Sandy
編集に関する質問については、字下げの変更は歓迎しますが、コードを変更することは避けてください。 –
それは事故だった@EmileBergeron私はテキストエディタにインデントを変更するためにペーストしたが、もともと誤ってインデントされていたときにスタックオーバーフロー内で行う良い方法が見つからなかった。 – finalfreq