【发布时间】:2016-11-24 01:19:57
【问题描述】:
我对反应很陌生,我正在处理注册页面复选框元素
下面是Choice组件的实现,
const ChoiceItem = ( { options, itemId, selectedIndex, onChange } ) => (
handleChange: function(checked){
const value = [];
options.map( option, i ) => (
value[ i ] = checked;
)
},
<Card>
{
options
.map( ( option, i ) => (
<Checkbox
id={ `Choiceitem-checkbox-${ i }-${ itemId }` }
key={ i }
label={ option.text }
style={ styles.checkbox }
value={ '' + i }
onChange={ ( checked ) => onChange( itemId, [ i ], checked ) }
/>
) )
}
</Card>
);
我想要在这里做的是遍历选项并将那里的值放入名为 value 的数组中,然后在注册表单中回调 handleAnswerChange 并在那里设置值。谁能告诉我如何存档?
谢谢。
【问题讨论】:
-
在您的代码 sn-p 中,您没有将
this绑定到您的this.handleAnswerChange。即您应该将this.handleAnswerChange = this.handleAnswerChange.bind(this)放入您的constructor。否则,this.setState()不适合您的情况。顺便说一句,在renderItem()中,您没有将props传递给它。 -
@andre 因为
handleAnswerChange是使用自动绑定的箭头函数定义的。这确实需要在 babel 中使用至少第 2 阶段。 -
@kwelch 哎呀,对不起,我没注意到他/她使用了箭头功能,我的错。