如何编辑动态添加的输入,而我的输入数据不会填充该数组中的其他输入?

勇敢的蜜蜂

我有一个formik形式,根据数组的长度将aView与两个映射x的长度将视情况而定。inputsx

这是代码。

import React, { Component, Fragment } from "react";
import { Button, TextInput, View, StyleSheet } from "react-native";
import { Formik } from "formik";

class App extends Component {
  render() {
    const x = [1,2];
    return (
      <View>
        <Formik
          initialValues={{ name: "", description: "" }}
          onSubmit={values => alert(JSON.stringify(values))}
        >
          {({ values, errors, handleBlur, handleChange, handleSubmit }) => (
            <Fragment>
              <TextInput
                placeholder="name"
                value={values.name}
                handleBlur={() => handleBlur("name")}
                onChangeText={handleChange("name")}
                style={styles.input}
              />
              <TextInput
                placeholder="description"
                value={values.description}
                handleBlur={() => handleBlur("description")}
                onChangeText={handleChange("description")}
                style={styles.input}
              />
              {x.map(x => {
                return (
                  <View>
                    <TextInput key={x}
                      placeholder={`name`}
                      value={values.name}
                      handleBlur={() => handleBlur}
                      onChangeText={handleChange}
                      style={styles.input}
                    />
                    <TextInput
                      placeholder={`description`}
                      value={values.description}
                      handleBlur={() => handleBlur(x.toString())}
                      onChangeText={handleChange}
                      style={styles.input}
                    />
                  </View>
                );
              })}
              <Button title="submit" onPress={handleSubmit} />
            </Fragment>
          )}
        </Formik>
      </View>
    );
  }
}

提交时,我无法使其正常工作。当我键入内容时,该文本还会填充该名称的所有其他输入,例如,如果我键入一个description输入,则该文本会填充的其他所有迭代description,我该如何进行这项工作?

看一下小吃

这里

埃塔罕

您需要动态创建初始值对象,以使提交正常工作,例如:

const x = [1, 2];
const initialFields = { name: "", description: "" };
const extraFields = x.map(num => ({
  [`name${num}`]: "",
  [`description${num}`]: ""
}));

可以将其传递给您的Formik表单,如下所示:

<Formik
  initialValues={Object.assign(initialFields, ...extraFields)}
  onSubmit={values => alert(JSON.stringify(values))}
>

然后将动态添加的TextInputs更改为使用这些值,如下所示:

{x.map(x => {
  return (
    <View>
      <TextInput
        placeholder={`name${x}`}
        value={values[`name${x}`]}
        handleBlur={() => handleBlur(`name${x}`)}
        onChangeText={handleChange(`name${x}`)}
        style={styles.input}
      />
      <TextInput
        placeholder={`description${x}`}
        value={values[`description${x}`]}
        handleBlur={() => handleBlur(`description${x}`)}
        onChangeText={handleChange(`description${x}`)}
        style={styles.input}
      />
    </View>
  );
})}

查看我的CodeSandbox分支以获取有效的演示。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在pandas数据框中填充新列,该数据框从其他列获取输入

我想添加输入字段的数据并想在其他输入字段中显示它们

与其他输入动态添加和删除输入

如何在Rails中预填充动态添加的表单输入

根据其他输入填充输入

我该如何输入

在其他主机的输入中输入数据

如何编辑JS填充输入?

jQuery对照其他动态添加的输入字段验证动态添加的输入字段

从动态添加的输入中获取数据

我该如何创建一个捕捉,以确保除了数字以外没有其他输入到文本框中,而且还接受空白输入

如果我想从输入中传递数据,并且还希望用户不能编辑 id 输入,该怎么办?

Plex不会输入我的主目录或其他分区

动态添加由数据库记录填充的<select>输入

Javascript“Datedropper”填充其他输入表单中的值

在输入中输入数据,然后仅显示页面其他位置输入的文本

如何使用 Json 对象填充动态添加的输入字段

编辑动态添加的输入字段的值

从数组输入数据时,如何防止在mysql中重复输入?

XSLT-将数据动态填充到输入的值中

从键盘输入动态数组填充[C]

JAVASCRIPT-在动态创建的编辑框中拦截键码13(输入)并将元素传递给其他函数

如何在循环while或foreach中制作动态其他选项输入框

从Google表格中的其他表格输入特定数据时添加时间戳

不输入该如何输入Golang中Stdin的输入字段?

选择其他选项时如何添加输入框

Javascript如何添加输入文本并保留其他字段的值

如何将动态添加的输入框的值添加到数组中?

动态填充html输入