私は、ユーザーがメンバーシップに3つのオプションのいずれかを選択できるフォームを持っています。私は画面を正しくレンダリングしますが、ボタンのトグルは機能しません。他のボタンをクリックすると、最初のオプションのままになります。ここに私のコードですReact-native動的に生成されたTouchableHighlight with画像
<View style={styles.mainview}>
<ListView
dataSource={this.state.dataSource}
renderRow={(rowData) =>
<TouchableHighlight onPress={() => this.toggleOneYear(rowData.id, rowData.i)} style={styles.registerButton} underlayColor='#ffffff'>
<View style={styles.detailBoxTick}>
{renderIf(rowData.i == 1)(
<Image style={styles.imageTickStyle} source={this.state.payoneyear ? Images.rememberTickImg : Images.rememberUnTickImg} />
)}
{renderIf(rowData.i == 2)(
<Image style={styles.imageTickStyle} source={this.state.paytwoyear ? Images.rememberTickImg : Images.rememberUnTickImg} />
)}
{renderIf(rowData.i == 3)(
<Image style={styles.imageTickStyle} source={this.state.paythreeyear ? Images.rememberTickImg : Images.rememberUnTickImg} />
)}
<Text style={styles.tickBoxText}>
{rowData.card_duration} years Membership ${rowData.price}
</Text>
</View>
</TouchableHighlight>
}
enableEmptySections
/>
</View>
toggleOneYear(id, counter) {
if (counter == 1) {
console.log('counter ', counter)
console.log('payoneyear ', this.state.payoneyear)
this.setState(
{
payoneyear: true,
paytwoyear: false,
paythreeyear: false
}
)
console.log('payoneyear ', this.state.payoneyear)
}
else if (counter == 2) {
console.log('counter ', counter)
console.log('payoneyear ', this.state.paytwoyear)
this.setState(
{
payoneyear: false,
paytwoyear: true,
paythreeyear: false
}
)
console.log('paytwoyear ', this.state.paytwoyear)
}
else if (counter == 3) {
console.log('counter ', counter)
this.setState(
{
payoneyear: false,
paytwoyear: false,
paythreeyear: true
}
)
}
}
私は上記のコードで間違っていますか?いくつかの助けてもらえますか?ありがとうございます。
「カウンター」はどこで変更/設定しますか? – yedidyak