Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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
Reactjs 难以将表单上的状态数据发送到不同的组件_Reactjs - Fatal编程技术网

Reactjs 难以将表单上的状态数据发送到不同的组件

Reactjs 难以将表单上的状态数据发送到不同的组件,reactjs,Reactjs,我知道这个问题已经被问过很多次了。我看过很多不同的书,但我仍然很难理解。 我在网上读过很多文章,我知道我需要把我的状态传递给道具,我很难做到这一点。我成功地通过了一个简单的测试字符串,但是我无法将我的状态传递给props,因为它只是不返回任何内容,而且我不确定如果表单上的值在onchange方法中得到更新,为什么会这样 我还想避免使用redux作为替代方法,因为我正在尝试先学习基本方法 我尝试做的很简单,用户填写一个包含表单上ordernumber的框。他们点击提交,重定向到另一个页面,在那里我

我知道这个问题已经被问过很多次了。我看过很多不同的书,但我仍然很难理解。 我在网上读过很多文章,我知道我需要把我的状态传递给道具,我很难做到这一点。我成功地通过了一个简单的测试字符串,但是我无法将我的状态传递给props,因为它只是不返回任何内容,而且我不确定如果表单上的值在onchange方法中得到更新,为什么会这样

我还想避免使用redux作为替代方法,因为我正在尝试先学习基本方法

我尝试做的很简单,用户填写一个包含表单上ordernumber的框。他们点击提交,重定向到另一个页面,在那里我可以访问他们在订单号输入框中提交的ordernum

这是我的密码:

简单输入表单页面

/*eslint禁用无未使用的变量*/ 从“React”导入React; 从“react dom”导入react dom; 类Reloform扩展了React.Component{ 构造器{ 超级作物; 此.state={ orderNum:, 错误消息: } } onChangee{ 这是我的国家{ [e.target.name]:e.target.value } } 安苏米特{ 如果this.state.orderNum=={ 这是我的国家{ errorMsg:'请输入您的订单号。' }; }否则{ 这是我的国家{ 错误消息: }; //提交成功 window.location='/relotorm'; } e、 防止违约; } 渲染{ console.logthis.props 回来 //我得到消息道具回来,但没有orderNum? {this.props.message} {this.props.orderNum} this.onSubmite} 自动完成=关闭 > 电汇表 {this.state.errorMsg!=?

请输入订单号。

:} 顺序 这个.onchange} /> 提交 } }
导出默认重新格式化 状态是您正在访问的组件的本地状态。如果您想将状态值传递给另一个组件,这就是使用道具的地方。因此,当您尝试在Reloform组件中呈现Reloform时,当您执行orderNum={this.state.orderNum}时,将不会得到任何值,因为没有为Reloform定义状态,其中有一个名为orderNum的变量


您需要通过Reloform中的状态更新orderNum。您将显示消息,因为您传递的值在RelotForm中作为道具工作。然后,您可以在Reloform中将其作为道具正确访问。为orderNum改编一个类似的arhcite结构

我明白了。所以setstate不只是更新状态?我是否需要使用生命周期方法来更新状态?setState正是出于此目的。我相信你的等级结构不正确。如果要以Reloform呈现Reloform,则可以将值从Reloform传递到Reloform。您可以使用道具传递这些值,也可以使用道具在Reloform中访问这些值。作为道具,您可以传递硬编码值或存储在ReloForm状态中的值。是的,因此当该值在状态中发生变化时,您可以将该值作为道具传递给组件。所以作为一个道具,你可以做:。然后在该组件中,您可以通过道具访问该值。这不应该发生。你能给我看看你写的代码吗?我感觉你没有正确地实施它。