react-native textInput value return [object Object]

时间:2018-03-13 10:10:15

标签: javascript react-native setstate

我有一个包含4个TextInput的组件代表营业时间 我想连接前2个(代表开放时间)并将它们存储在我的状态中。但我有一个类型的返回值: [object Object]:[object Object]

这是前两个输入:

                 <CustomInput
                  underlineColorAndroid="#58CAF1"
                  style={styles.inputScheduleTime}
                  // ref="lundiStart"
                  placeholder="8H00..."
                  keyboardType="numeric"
                  onBlur={ input => {
                      let input1 = input;
                      this.setState({ monday: {
                        start: input1 ,
                        end: ""
                        }
                      });
                  }
                }
                />
                <CustomInput
                  underlineColorAndroid="#58CAF1"
                  style={styles.inputScheduleTime}
                  // ref="lundiStart"
                  placeholder="8H00..."
                  keyboardType="numeric"
                  onBlur={ input => {
                    let input2 = input;
                      this.setState({ monday: {
                        start:this.state.monday.start + ':' + input2,
                        end: ""
                        }
                      });
                  }
                }
                />  

我的状态就是这样:

  monday: {
        start: "",
        end: ""
      },  

您对此有何看法? 如何妥善保存?

=================== 解决方案 ==================

在我的情况下使用 onBlur 并使用react-native,您可以使用以下内容访问该值: input.nativeEvent.text

有了这个,我就能干净利落地设定我的状态!!

2 个答案:

答案 0 :(得分:2)

input1input2的值设置为input.target.value

你回来event(这是一个对象,而不是一个字符串)并尝试将它们连接在一起,从而产生[object Object]:[object Object]

获取事件的目标值(输入字段),可以满足您的需求。

答案 1 :(得分:0)

请看一下example 在React中反映输入值的最常用方法是在每次更改时更新状态,因此它具有可靠的值。

如果你真的想使用onBlur:
你确定,你的onBlur-Callback返回一个字符串吗?检查输入中返回的值,并确保类型正确。