【问题标题】:How to keep previous data and add more data in array React Native如何保留以前的数据并在数组 React Native 中添加更多数据
【发布时间】:2020-08-12 05:12:24
【问题描述】:

我正在使用带有数字 1 到 4 的选择器,当用户从选择器中选择任何数字(例如我选择 3)时,将显示 3 个文本输入,我将在这三个输入字段中输入一些内容,我正在保存值数组中的这 3 个输入。当我点击保存时,我想再次编辑它,就像我改变主意一样,我想再添加 2 个输入字段,当我选择 2 than 时,前 2 个替换为新的 2 个空文本输入,但我想保持以前的为好。 以下是截图

这里是代码。 根据选择器值输入多个文本。

 {this.state.storeArr.map((item, index) => (
          <TextInput
            key={index}
            style={[
              styles.input,
              {backgroundColor: theme.colors.lightGray},
            ]}
            placeholder=" Name "
            keyboardType={'default'}
            placeholderTextColor="gray"
            value={item}
            onChangeText={(text) => this.onChangeText(text, index)}
          />
        ))}

onChangeText = (text, index) => {
    const {storeArr} = this.state;
    const arr = [...storeArr];
    arr[index] = text;
    this.setState({storeArr: arr}, () => {
      console.log(this.state.storeArr);
    });
    console.log(storeArr);
  };

这里是根据picker值在数组中设置“”个数的代码

  setInput = (value) => {
    this.setState({storeArr: Array(value).fill('')});
  };

setinput 函数中,我想处理以将先前的字符串保留在数组中,并根据使用 Array(value).fill('') 选择的选择器值添加更多字符串

【问题讨论】:

  • 将你的代码推送到github并在这里留下一个链接,我会帮助你。

标签: javascript arrays reactjs react-native


【解决方案1】:

试试这个 setInput 函数:

setInput = (value) => {
    this.setState({ storeArr: value - this.state.storeArr.length >= 0
        ? [...this.state.storeArr, ...Array(value - this.state.storeArr.length).fill('')]
        : this.state.storeArr.filter((_, index) => index <= value)
    });
};

【讨论】:

  • Duy Nguyen 感谢它部分工作,如果我选择 4,它显示完美,如果我选择 3 什么都没有发生 4,如果我选择 2,则显示 3,如果我选择 1,则显示 2
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-09
  • 2018-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多