Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.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 表单组件名称正在react js的antd中更新_Javascript_Reactjs_Forms_React Redux_Antd - Fatal编程技术网

Javascript 表单组件名称正在react js的antd中更新

Javascript 表单组件名称正在react js的antd中更新,javascript,reactjs,forms,react-redux,antd,Javascript,Reactjs,Forms,React Redux,Antd,我使用antd表单创建任务列表,每个表单都有“提交”和“取消”按钮,每当用户创建任务时,都会生成一个新表单。我将任务数记为表单id。但是在更改字段时,我必须获取表单id,但是表单id正在使用任务计数值进行更新 创建Task.js import React from "react"; import actions from "../redux/actions"; import store from "../redux/store"; im

我使用antd表单创建任务列表,每个表单都有“提交”和“取消”按钮,每当用户创建任务时,都会生成一个新表单。我将任务数记为表单id。但是在更改字段时,我必须获取表单id,但是表单id正在使用任务计数值进行更新

创建Task.js

import React from "react";
import actions from "../redux/actions";
import store from "../redux/store";
import { Button } from 'antd';
import '../stylesheet/createTask.scss';
import {useSelector} from "react-redux";
import TaskForm from "./taskForm";
const CreateTask=()=>{
    const addTask=useSelector((state)=>{
        const {taskCount,task,templates}=state?.reducers
        return {taskCount,task,templates}
    })
    const {taskCount,task,templates}=addTask;
    const createTask=()=>{
        templates.push(<div id={`task${taskCount+1}`} key={`template${taskCount}`}><TaskForm/></div>);
        store.dispatch({type:actions.ON_ADD_TASK,payload:templates})
    }
return(
    <div className={"create-task"}>
        <span className={"task-count"}>Task {taskCount} </span>
        <Button onClick={createTask}>+</Button>
        {templates && templates.map((data)=>data)}
    </div>
)
}
export default CreateTask;
表单id正在使用任务计数进行更新。参考图片:


您可以使用道具为每个任务设置不同的表单ID。 在Task.js中,更改createTask如下:

const createTask=()=>{
templates.push(<div id={`task${taskCount+1}`} key= 
{`template${taskCount}`}><TaskForm taskId={taskCount}/></div>);
    store.dispatch({type:actions.ON_ADD_TASK,payload:templates})
}
return (
    <Form {...layout} form={form}
          initialValues={userData}
          name={`form${props.taskId}`}
          onChange={fieldsChange}
          onFinish={onFinish}>
....
</Form>
constcreatetask=()=>{
push();
dispatch({type:actions.ON_ADD_TASK,payload:templates})
}
然后在TaskForm.js中,按如下方式更改表单:

const createTask=()=>{
templates.push(<div id={`task${taskCount+1}`} key= 
{`template${taskCount}`}><TaskForm taskId={taskCount}/></div>);
    store.dispatch({type:actions.ON_ADD_TASK,payload:templates})
}
return (
    <Form {...layout} form={form}
          initialValues={userData}
          name={`form${props.taskId}`}
          onChange={fieldsChange}
          onFinish={onFinish}>
....
</Form>
返回(
....

是的,我也找到了这个。谢谢!