Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用setState回调更新TextInput的值属性_Javascript_Reactjs_React Native_React Redux_React Native Android - Fatal编程技术网

Javascript 如何使用setState回调更新TextInput的值属性

Javascript 如何使用setState回调更新TextInput的值属性,javascript,reactjs,react-native,react-redux,react-native-android,Javascript,Reactjs,React Native,React Redux,React Native Android,我是一个新的反应和尝试建立动态的形式。它似乎工作得很好。问题是,当我键入字段值时,它们会显示在屏幕上,但Textinput的value属性仍然为空。我试图探索所有选项,最终归结为setState的async。由于我是新手,我不知道如何创建一个回调函数来填充动态表单字段的value属性 我没有包含所有的代码,只是我认为与避免负担相关的代码 谢谢 萨尔 类应用程序扩展了React.Component{ 建造师(道具){ 超级(道具); 此.state={ 输入阵列:[], 查看数据:{ id:0,

我是一个新的反应和尝试建立动态的形式。它似乎工作得很好。问题是,当我键入字段值时,它们会显示在屏幕上,但Textinput的value属性仍然为空。我试图探索所有选项,最终归结为setState的async。由于我是新手,我不知道如何创建一个回调函数来填充动态表单字段的value属性

我没有包含所有的代码,只是我认为与避免负担相关的代码

谢谢 萨尔


类应用程序扩展了React.Component{
建造师(道具){
超级(道具);
此.state={
输入阵列:[],
查看数据:{
id:0,
数据:空
},
步骤:0,
总计项目:[],
项目:
{
id:0,
电子邮件:空,
密码:null,
地址:空
}
}
};
///onCHANGE函数
输入值1=(e)=>{
e、 坚持();
让item={…this.state.item};
item.Email=e.target.value;
this.setState({item:item});
输入值2=(e)=>{
e、 坚持();
让item={…this.state.item};
item.Password=e.target.value;
this.setState({item:item});
输入值3=(e)=>{
e、 坚持();
让item={…this.state.item};
项目地址=e.target.value;
this.setState({item:item});
//动态形式
输入=()=>{
返回(
)
};
//渲染方法
render(){
返回(
{this.state.InputArray.map((项,索引)=>(
//使用高光,因为它不会将其效果传递给子对象,所以不透明度会
this.viewPress(索引)}>
this.viewPress(索引)}>
{item.data}
{this.state.step==0?
:
此。删除(索引)}/>
}
))
}
);
}
}
用扩展运算符替换所有函数,而不是直接赋给对象。

尝试此操作并检查

EnterValue1 = (e) => {
  e.persist();
  this.setState({
    item: {
      ...this.state.item,
      Email: e.target.value,
    }
  });
}

注意:您的整个代码可能对调试您的问题有很大帮助

,以防万一。这可能不是最好的解决方案。因为这是我在react native的第一个项目

虽然我无法使用this.state获取prop的值,但它们仍然为null。对于我的动态表单,我创建了一个包含Views/textinput的函数,该函数带有一个索引参数,由我的map函数提供(该函数迭代长度等于添加的表单数的数组)。我使用onChageText方法,在setState中使用回调将类型化的值保存在一个id为的对象中,该id需要与我的动态映射表单的索引等效。使用数组对象的索引,values=this.state.object[index],values以动态形式保存


它仍然没有填充values prop,但在我添加新表单时,它确实在上一个表单的前端保留了键入的内容。

我没有看到您调用“输入”函数来呈现TextInput的任意位置!你把它叫做哪里?谢谢,我还没有粘贴完整的代码。我在另一个函数中调用它,来推动表单。我没有包括在这里。抱歉搞混了,谢谢。我试过了。它没有改变价值属性,我希望它能改变。
EnterValue3 = (e) => {
    e.persist();

    let item = { };

    this.setState({ item: {...this.state.item, address: e.target.value });
}
EnterValue1 = (e) => {
  e.persist();
  this.setState({
    item: {
      ...this.state.item,
      Email: e.target.value,
    }
  });
}