我正在使用我的组件构建单选按钮,按钮构建正常,但onPress不工作。单击单选按钮,我在标题中收到错误。我怀疑,根据错误,“这个”不是我认为的那样。任何帮助表示赞赏。这是相关的代码:
let radio_props = [
{label: 'forward', value: 0 },
{label: 'back', value: 1 }
];
<RadioBtn
radioGroupLabel={'Main Label'}
radioLabels={radio_props}
style={styles.radioElement}>
</RadioBtn>
然后在我的RadioBtn.js文件中......
onRadioPressed =(val)=&gt; { console.log('VAL:',val); this.setState({了selectedValue:VAL}); };
renderRadios(obj, i) { console.log('OBJ:', obj); return ( <View style={styles.firstRadioContainer}> <TouchableOpacity onPress={(value, index) => { this.onRadioPressed(obj.value) }} underlayColor='#f1c40f'> <Text value={obj.value} style={styles.radio}>{obj.label}</Text> </TouchableOpacity> </View> ) }; render() { let renderedRadios = this.props.radioLabels.map(this.renderRadios); return ( <View> <View style={styles.radioLabelContainer}> <Text style={styles.radioLabel}>{this.props.radioGroupLabel}</Text> </View> <View style={styles.radioGrp}> {renderedRadios} </View> </View> ); };
答案 0 :(得分:0)
你是对的,renderRadios方法中的this
不再指向RadioBtn类,因为你在数组的map方法中调用了它。
尝试使用arrow function expression更改为以下内容:
let renderedRadios = this.props.radioLabels.map((o, i) => this.renderRadios(o, i));