循环显示多个textInput,状态如何控制?



  • 0_1460337465772_52542D64-34F4-4675-BF86-4B66ED5F4944.png
    0_1460337420931_14EB34EB-A9F8-41F8-A01C-B6286E87737B.png

    TextInput的个数需要从commodities获取,这样不知道它们的state该如何控制,而且在遍历中的TextInput现在还报错,错误如下,请问这种循环便利多个textInput该如何实现?

    0_1460337601353_4875738A-74F9-4897-9DC5-BA7E774337D6.png


  • administrators

    1、map中应该使用箭头函数而非function,否则this指向不对,导致this.state为undefined
    2、ref的思路不对。不要去直接获取组件(即便获取到了也没有什么方法可以用)。而应该在onChangeText时,根据索引i去读写不同的state即可。例如:

    // 初始用一个空数组
    this.state = {
      textValues: [],
    };
    
    // 记录数据
    onChangeText={value => {
      var values = this.state.textValues;
      values[i] = value;
      this.setState({ textValues: values });
    }}
    
    // 使用时
    this.state.textValues.map(value => {
      console.log(value); // 逐个打印记录的数据
    });
    


  • @sunnylqm 说:
    谢谢,按您说的问题解决了


登录后回复