入力を状態配列と動的に同期するには、 react-catalystパッケージlinkState
から呼び出される someting を使用できます。npm でインストールしたら、次の方法で使用できます。
//need to import
import Catalyst from 'react-catalyst';
ElementsClass = React.createClass({
// mixin the linkedstate component
mixins : [Catalyst.LinkedStateMixin],
getInitialState: function() {
return {
elements: []
}
},
addElement: function() {
var element = {
name: ""
};
//add to elements array
this.state.elements.push(element);
//let react know to rerender necessary parts
this.setState({
elements : this.state.elements
});
},
render() {
return (
{this.state.elements.map(function (element, i) {
//use the linkState method
return <input valueLink={this.linkState('elements.'+i+'.name')} />
}
)}
)
}
パッケージが必要な理由react-catalyst
は、ネイティブに ReactvalueLink
が最上位の状態項目のみをリンクするためelements
です。明らかに、これは特に有用ではありませんが、ありがたいことに、解決するのはかなり簡単な問題です。
注: 要素入力のような反復項目の場合、一意のキーを提供する必要があります。次のようなもの (より具体的に変更する必要がある場合があります):
{this.state.elements.map(function (element, i) {
//use the linkState method
return <input valueLink={this.linkState('elements.'+i+'.name')} key={'elinput' + i} />
}
)}
これはアプリに外向きの影響はありません。主に、要素を内部的にターゲットに反応させるのに役立ちます。