私はReact Nativeでレンダリングする行のリストがあります。各行には、オブジェクトに関連する操作を実行するための情報とボタンが含まれています。JSXビューがコンカチネーションされているときのonPressパラメータ値が正しくありません
行をレンダリングするには、リストを繰り返し、新しい行ごとにJSXマークアップを配列に追加します。
for (i = 0; i < this.state.values.length; i++) {
var theVariable = this.state.values[i].id;
returnValue.push(
<View style={{flexDirection: 'column', borderTopWidth: .5, borderColor: 'grey'}}
<View style={[s.rowStyle, {justifyContent: 'center'}]}>
<TouchableHighlight style={s.buttonOutlineActiveRental} underlayColor='transparent' onPress={() => this._someFunction(theVariable)}>
<Text style={s.buttonText}>
Click me!
</Text>
</TouchableHighlight>
</View>
</View>
);
}
問題は、オンプレス機能の値が正しくありません。いくつかのデバッグを通じて、私はtheVariable
が最終行のtheVariable
と常に等しいことを発見しました。これは、各行が常に変数の最新バージョンを指していると信じさせてくれます。
この場合、オンプレス機能でパラメータを渡す適切な方法は何ですか?
これは、参照を格納してこの参照を渡しているために起こると思います。反復ごとに参照される変更は何ですか。 –