我有一个包含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
有了这个,我就能干净利落地设定我的状态!!
答案 0 :(得分:2)
将input1
和input2
的值设置为input.target.value
。
你回来event
(这是一个对象,而不是一个字符串)并尝试将它们连接在一起,从而产生[object Object]:[object Object]
。
获取事件的目标值(输入字段),可以满足您的需求。
答案 1 :(得分:0)
请看一下example。 在React中反映输入值的最常用方法是在每次更改时更新状态,因此它具有可靠的值。
如果你真的想使用onBlur:
你确定,你的onBlur-Callback返回一个字符串吗?检查输入中返回的值,并确保类型正确。