私はReactを使って私の最初のプロジェクトをやっています。私が理解できないことが1つあります。だから私は、多くの異なるType
コンポーネントを持っていて、それは主コンポーネントのTypesPage
状態に設定されています。そしてonChange
イベントがType
コンポーネントで発生した場合、どのタイプがTypesPage
の状態であるか、型配列内のどのインデックスかを知りたいので、data
状態を再更新できます。 handleChange
関数の内部React:どのコンポーネントが関数を呼び出すかを知る方法
私は比較jQueryのgrepの機能を使用するには、すべての種類のアレイとType
タイトル値をクリックしたが、私はそれはそれを行うには正しい方法ではありません、それは巨大な配列とやり過ぎだろうと確信しています。
は、なぜ私はES6を好むどの
handleChange:function(element, event){
var typeIndex;
$.grep(types, function(e, index){
if(element.title === e.title){
typeIndex = index
}
});
types[typeIndex] //Now I know that this is the Type that was changed
}
var types = [
{
type_id: 1,
type_name: "Logo"
},
{
type_id: 2,
type_name: "Ad"
},
{
type_id: 3,
type_name: "Catalog"
},
];
var Type = React.createClass({
render: function() {
return(
<li>
<input type="text" value={this.props.title}
onChange={this.props.handleChange.bind(null, this.props)} />
</li>
);
}
});
var TypesContainer = React.createClass({
render: function() {
var that = this;
return(
<ul>
{this.props.data.map(function(entry){
return(
<Type
key={entry.type_id}
title={entry.type_name}
handleChange={that.props.handleChange}
/>
);
})}
</ul>
);
}
});
var TypesPage = React.createClass({
getInitialState: function(){
return({data: types})
},
handleChange: function(element, event){
},
render: function() {
return(
<TypesContainer
data={this.state.data}
handleChange={this.handleChange}
/>
);
}
});
ReactDOM.render(
<TypesPage />,
document.getElementById('container')
);
次の例を参照してくださいうわああ:)それは...驚くべきことです。ありがとうございました! –
@VitasKanaporisようこそ –