繁体   English   中英

react-native textInput value return [object Object]

[英]react-native textInput value return [object Object]

我有一个带有 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

有了这个,我能够干净地设置我的状态!

input1input2的值设置为input.target.value

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

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

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

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

这是旧线程,但遇到了类似的问题并使用以下方法解决了它

更新

onBlur={text => SetContent(text)}

onBlur={({ text }) => SetContent(text)}

注意:括号和大括号中的换行文本

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM