【问题标题】:Click button programatically in react native在本机反应中以编程方式单击按钮
【发布时间】:2020-09-28 20:11:21
【问题描述】:

在我的 react-native 应用程序中,我有一个包含表单的屏幕。 我想在加载屏幕时提交表单,因为表单中的值是不变的。 所以我想在加载时提交表单。 是否可以? 谁能帮帮我。。

<PrimaryButton
          // onPress={onSubmit(siteUrl)}
          onPress={() => onSubmit(siteUrl)}
          text={translate("general.enter")}
          style={styles.buttonEnter}
          mode={isSiteUrlSubmitted ? "loading" : undefined}
        />

我试过这个 onPress={onSubmit(siteUrl)} 但它显示 Invariant Violation: Too many re-renders。 React 限制渲染次数以防止无限循环。

【问题讨论】:

  • 你能展示一下 onSubmit 里面发生了什么吗?

标签: reactjs react-native react-redux rxjs react-router


【解决方案1】:

您可以在React.useEffect中拨打onSubmit()

这样

React.useEffect(() => {
   onSubmit() 
}, []);

当您添加空白括号时 加载时只会执行一次

【讨论】:

  • 感谢您的快速回复。我希望这就是你的意思useEffect(() =&gt; { onSubmit(siteUrl); }); 但我得到了一个错误 Invariant Violation: Maximum update depth exceeded。当组件在 componentWillUpdate 或 componentDidUpdate 中重复调用 setState 时,可能会发生这种情况。 React 限制嵌套更新的数量以防止无限循环。
  • 嗨@sreenumalae在useEffect中的}之后添加,[]作为useEffect(() =&gt; { onSubmit(siteUrl); },[]);
  • 嗨@yoel 我照你说的做了,但我仍然遇到同样的错误不变违规:超过最大更新深度。当组件在 componentWillUpdate 或 componentDidUpdate 中重复调用 setState 时,可能会发生这种情况。 React 限制嵌套更新的数量以防止无限循环。
  • @sreenumalae 你把它从onPress删除了吗?
  • 是的,我尝试删除,也尝试删除整个 PrimaryButton。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-09
  • 2017-06-17
  • 2013-05-23
  • 1970-01-01
  • 2017-06-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多