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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.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将列表中的数据发送到表单中?_Javascript_Reactjs - Fatal编程技术网

Javascript 如何使用React将列表中的数据发送到表单中?

Javascript 如何使用React将列表中的数据发送到表单中?,javascript,reactjs,Javascript,Reactjs,我有一个元素列表和一个用于创建/更改元素的表单。我用react表示如下 ... render() { return ( <div> <List/> <Form/> </div> ) } ... 每个列表元素都有一个更改按钮。单击它,获取元素字段值。如何用元素值填充表单字段而无需重复?这不是您所要求的。我只是在纠正你的错误 render() {//wro

我有一个元素列表和一个用于创建/更改元素的表单。我用react表示如下

...
render() {
    return (
        <div>
            <List/>
            <Form/>
        </div>
    )
}
...

每个列表元素都有一个更改按钮。单击它,获取元素字段值。如何用元素值填充表单字段而无需重复?

这不是您所要求的。我只是在纠正你的错误

render() {//wrong
    return (
        <List/>
        <Form/>
    )
}
不能返回多个组件。您需要将所有组件包装在一个元素中。 例:

编辑:要用元素数据填充表单字段,需要将组件数据作为道具传递

<Form data={this.state.data}/>

您需要管理父组件中的状态:

1更改单击列表元素时的状态 2通过添加属性将状态元素传输到表单组件

...
constructor(props) {
    super(props);
    this.state = {}
    this.fillForm = this.fillForm.bind(this);
}


fillForm(element) {
   this.setState({
      element: element
   });
}


render() {
   return (
       <div>
         <List onElementClick={this.fillForm} />
         <Form element={this.state.element}/>
       </div>
   )
}
...
在列表组件中,单击元素时,必须调用此函数this.props.OneLementClickElement ClickElement clicked


在表单组件中,您可以使用此属性获取元素字段this.props.element

这真的有效吗。?返回语句错误。@谢谢,请更新代码部分。你能帮我解答这个问题吗?发布你的完整代码。好吧,我也这么认为:但这看起来像是Redux方法。据我所知,没有其他方法:-使用父组件的状态-使用Redux-?这不是Redux,Redux提供一个带还原器的单一存储,在这个解决方案中,只有一个由properties@Evgeniy我不知道比亲子关系更好的方法
...
constructor(props) {
    super(props);
    this.state = {}
    this.fillForm = this.fillForm.bind(this);
}


fillForm(element) {
   this.setState({
      element: element
   });
}


render() {
   return (
       <div>
         <List onElementClick={this.fillForm} />
         <Form element={this.state.element}/>
       </div>
   )
}
...