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 反应:执行顺序_Javascript_Reactjs_React Native - Fatal编程技术网

Javascript 反应:执行顺序

Javascript 反应:执行顺序,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我是一个新的反应者,并且一直遵循这个例子 现在,据我所知,以下应该是执行顺序 从LoginControl开始执行 然后是构造函数 然后转到render方法并运行 按钮=} 现在控件应该转到LoginButton函数,但是当我调试控件时,它会转到Greetings然后转到UserGreetings,然后转到LoginButton。为什么呢? 另外,在LoginButton中,我们有,单击可以做什么?它叫什么 如果有人能解释一下,我将不胜感激。我已经读了很多文章,花了一些时间进行调试,但找不到

我是一个新的反应者,并且一直遵循这个例子

现在,据我所知,以下应该是执行顺序

  • 从LoginControl开始执行
  • 然后是构造函数
  • 然后转到render方法并运行

    按钮=}

现在控件应该转到
LoginButton
函数,但是当我调试控件时,它会转到
Greetings
然后转到
UserGreetings
,然后转到
LoginButton
。为什么呢? 另外,在
LoginButton
中,我们有
,单击
可以做什么?它叫什么

如果有人能解释一下,我将不胜感激。我已经读了很多文章,花了一些时间进行调试,但找不到答案。

Sara, 我将从后一个问题开始

LoginButton
是一个组件,它所做的和拥有的只是一个按钮,在onClick事件上触发一个名为
props.onClick
的方法。那么什么是道具。点击一下?它是从父组件传递到此组件的某个方法

回到代码,让我们搜索父组件,在本例中,它将是顶级组件
LoginFlow
。如果
isLoggedIn
为false,则分配给按钮
。你看到
onClick
道具了吗?这就是作为
道具传递的内容。单击
登录按钮
,因此在单击时执行的函数是
登录流的
handleLoginClick

至于前一个问题,这正是
LoginFlow
组件返回的内容。查看组件的return语句部分-它使用
isLoggedIn
prop返回
Greetings
,然后(在本例中为
true
)返回到
usergreetings

希望这有帮助

对于:

虽然该代码在
之前执行,但它与
按钮=登录按钮()
不同,后者将执行
登录按钮中的代码

LoginButton
内的代码仅在实际渲染时执行,即在通过调用
ReactDOM.render()
渲染的组件内的
{button}


props
是作为第二个参数传递给上面的
React.createElement
的值,将作为第一个参数传递给组件实现

如果您想象
,则以下实现将在按钮内显示
test

const LoginButton = (props) => <button>{props.something}</button>
constloginbutton=(props)=>{props.something}

然而,
onClick
是一个由内置React元素识别的道具,如
,它将等待用户单击该元素并在每次单击时调用开发人员指定的函数-请参阅以了解更多信息。

ah ok,因此@Aprillion LoginButton在后面被调用,因为下面是{button}返回({button});不是@Aprillion,但会说是的,这就是原因:)实际上我的问题应该是一般性的,而不是针对某个人的,我今天学到了这一点,谢谢你的回复,谢谢!
const LoginButton = (props) => <button>{props.something}</button>