javascript - 在 onChangeText 函数中更新数组散列的 TextInput 值

标签 javascript arrays reactjs react-native textinput

  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)
                ]
              });
            }} 
       />

我的答案数据结构是like= 0: {id: 799, answer_text: "helloas fast"percentage: 0}

我想更新答案文本并将其存储在 this.state.answers 中,但是当我在 textinput 上写入文本并更新它时,我只得到散列中的 answer_text 并且我想要散列中的所有 id、answer_text、百分比。 所以,我需要建议。

提前致谢。

最佳答案

你没有很好地处理数组数据。您可以保留其结构,也可以使用 answers_data.map 将它们转换为字符串。

选项一的完整代码:

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)
            ]
          });
        }} 
 />

关于javascript - 在 onChangeText 函数中更新数组散列的 TextInput 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47921763/

相关文章:

java - 如何检查代码中变量的更新/更改位置(java - eclipse)?

javascript - 我正在尝试为一个圆圈制作动画,该圆圈在最大宽度和高度保持 4 秒,然后再次缩小到原始大小,然后再次重复

css - React - 为什么找不到我的样式表?错误 404

javascript - 禁用缓存、cookie 和 WebView 中的所有其他内容

javascript - javascript 事件处理程序中的 'event' 参数来自哪里?

javascript - 如何将一个类随机分配给我在 DOM 中生成的元素?

arrays - Ruby String Split on "\t"丢失 "\n"

JavaScript 复制对象数组

python - 在opencv中从caffe中读取多维数组(C++)

reactjs - React Jest 创建错误 "new Error(' .. .')"立即退出并失败测试