0
これをチェックすると、配列に追加されます。チェックを外すと、配列から削除されます。下のコードは動作しますが、null
が置かれています。私はそれを完全に取り除く必要があります。どうやって?アレイから削除する場合は、チェックボックスをオフにします。
...
getInitialState: function(){
return{
email: this.props.user,
product: []
}
},
_product: function(){
if (this.refs.opt1.checked) {
var opt1 = this.refs.opt1.value;
} else {
this.setState({ product: this.state.product.filter(function(_, i) { return i }) });
};
if (this.refs.opt2.checked) {
var opt1 = this.refs.opt2.value;
} else {
this.setState({ product: this.state.product.filter(function(_, i) { return i }) });
};
var array = this.state.product.concat([opt1]);
this.setState({
product: array
});
},
render: function(){
return(
<div><input ref="opt1" type="checkbox" value="foo" onClick={this._product}/></div>
)
}
...
このフィルタ機能の意味はなんですか?最初の要素を削除しますか?また、チェックボックスでチェックするのではなく、値を使うのはなぜですか? – OriolBG
@OriolBGそれは 'arr.slice(1)'と書かれた奇妙な方法です。 OPも、関数の最後に 'setState'を呼び出しています。したがって、前の' setState'呼び出しは上書きされています。オプションがチェックされていなければ 'opt1'は定義されません – azium
' this.setState {製品:this.state.product.filter(function(i){return i!== null})}); '' null'はまだそこにあります – Sylar