我正在使用我的组件构建单选按钮,按钮构建良好,但 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) => { 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> ); };
你是对的,this
renderRadios方法不再指向RadioBtn类,因为你在数组的map方法中调用的方式。
尝试使用箭头函数表达式更改为以下内容:
let renderedRadios = this.props.radioLabels.map((o, i) => this.renderRadios(o, i));