2017-12-21 22 views
3
constructor(props) { 
    super(props); 
    this.state = { 
    answers: props.element.answers_data.map((answer, index) => { 
    return answer; 
    } 
    }) 

    <TextInput 
     value = {this.state.answers[index].answer_text} 
    onChangeText={(answer_text) => { 
       this.setState({ 
       answers: [ 
        ...this.state.answers.slice(0, index), 
        {answer: {answer_text}}, 
        ...this.state.answers.slice(index + 1, 
        this.state.answers.length) 
       ] 
       }); 
      }} 
     /> 

私の答えデータ構造である0 =のように:{ID:799、ANSWER_TEXT: "helloas速い" の割合:0}更新のTextInput値

私が欲しいです回答テキストを更新してthis.state.answersに保存します。ただし、textinputにテキストを書き込んで更新すると、ハッシュのanswer_textしか取得できません。すべてのID、answer_text、ハッシュのパーセンテージが必要です。 だから、私は提案が必要です。

ありがとうございます。

答えて

2

あなたの配列データをうまく処理できませんでした。構造体をそのまま使用するか、answers_data.mapを使用して文字列に変換することができます。オプション1の

全コード:オプション2の

constructor(props) { 
    super(props); 
    this.state = { 
    answers: props.element.answers_data.map((answer, index) => { 
     return { ...answer }; 
    }) 
    } 
} 

<TextInput 
    value = {this.state.answers[index].answer_text} 
    onChangeText={(answer_text) => { 
      this.setState({ 
      answers: [ 
       ...this.state.answers.slice(0, index), 
       { ...this.state.answers[index], answer_text }, 
       ...this.state.answers.slice(index + 1, this.state.answers.length) 
      ] 
      }); 
     }} 
/> 

全コード:は私の答え構造がこのようなものです

constructor(props) { 
    super(props); 
    this.state = { 
    answers: props.element.answers_data.map((answer, index) => { 
     return answer.answer_text; 
    }) 
    } 
} 

<TextInput 
    value = {this.state.answers[index]} 
    onChangeText={(answer_text) => { 
      this.setState({ 
      answers: [ 
       ...this.state.answers.slice(0, index), 
       answer_text, 
       ...this.state.answers.slice(index + 1, this.state.answers.length) 
      ] 
      }); 
     }} 
/> 
+0

は0 =:{ID:777、ANSWER_TEXTを: " 2:{id:776、answer_text: "gb"、パーセント:0} 私はanswer_textを書くときにanswer_textを与えますが、この{id:776、answer_text: gb "、パーセンテージ:0}全体構造。私は1つのオブジェクトのこの3つの値を得るためにそこに書くことができます私を提案してください –

+0

あなたのコードを変更する2つの可能性のための私の答えを変更しました。どちらが読みやすいかを確認してください。ここでお気軽にお問い合わせください。 – Val

+1

あなたのお返事ありがとうございます@val ..その作業 –