前提・実現したいこと
react nativeでアプリ開発をしています。
配列を使って、複数のtextInputを表示し、それぞれのinputで別の入力と表示をしたいです。
そのため、配列の値(View)ごとに使用する関数を使い分けたいのですが、うまくいきません。
配列の値ごとに使い分けたい関数は以下の内容です
js
1 2onChangeText={(text) => { 3 this.setState({stateA : text}); 4 }} 5
stateを2種類、配列を2つ作り、配列によってstateの値を変えるため、以下のコードを作りました。
js
1import React from "react"; 2import { View, Text, TextInput } from "react-native"; 3 4class Test extends React.Component { 5 state = { 6 stateA: "", 7 stateB: "", 8 }; 9 10 renderList(element) { 11 return ( 12 <View> 13 <Text>{element.name}</Text> 14 <TextInput 15 value={element.value} 16 onChangeText={(text) => { //①ここの引数が見つけられない 17 this.setState(element.stateName); 18 }} 19 /> 20 </View> 21 ); 22 } 23 24 render() { 25 const list = []; 26 27 const Array = [ 28 { 29 name: "入力A", 30 value: this.state.stateA, 31 stateName: { stateA: text }, 32 }, 33 { 34 name: "入力B", 35 value: this.state.stateB, 36 stateName: { stateB: text }, 37 }, 38 ]; 39 40 Array.forEach((element) => { 41 list.push(this.renderList(element)); 42 }); 43 return <View>{list}</View>; 44 } 45} 46 47export default Test; 48
この場合ですと、①とコメントアウトした部分の引数が利用できなくなり、入力されたテキスト内容をstateへ反映できません。
解決の方法、ご存知の方おりましたら、ご教授いただけないでしょうか?
補足情報(FW/ツールのバージョンなど)
node : 12.18.3
react native : 4.10.1
expo : 3.22.3
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/31 03:19