带状态的其他组件重用变量

用户名

我正在尝试msg在另一个组件中重用该变量,该组件的范围可能是声明它的组件。问题是变量使用状态,并且不能在范围之上声明为两个组件都可以访问。

App试图使用该组件显示了这个错误组件:msg is not defined

解决此问题的最佳解决方法是什么?

import React, { useState } from "react";

const Test = () => {
  const [msg, setMsg] = useState(null);
  return (
    <>
      <p>state value from component: {msg}</p>
      <button onClick={() => setMsg("changed")}>change state</button>
    </>
  );
};

const App = () => {
  return (
    <div>
        {msg && ( // error here
          <p>show this</p>
        )}
      <p>some text</p>
      <Test />
    </div>
  );
};

export default App;

为了方便起见,这是一个堆栈闪电战:https ://stackblitz.com/edit/react-g16stb

感谢您的帮助

布扎托

您不能将变量传递给需要提升状态的父母或兄弟姐妹找到一个共同的祖先来放置您的州并作为道具传下来。

您的代码应如下所示:

const Test = ({ msg,setMsg }) => {
  return (
    <>
      <p>state value from component: {msg}</p>
      <button onClick={() => setMsg("changed")}>change state</button>
    </>
  );
};

const App = () => {
  const [msg, setMsg] = useState(null);
  return (
    <div>
        {msg && (
          <p>show this</p>
        )}
      <p>some text</p>
      <Test  msg={msg} setMsg={setMsg} />
    </div>
  );
};

export default App;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

状态对其他组件的影响

来自分类Dev

更改其他组件的状态-ReactJS

来自分类Dev

React Native:从其他组件更改状态

来自分类Dev

如何从其他组件更新状态?

来自分类Dev

切换其他组件的状态

来自分类Dev

React Native - 编辑其他组件的状态

来自分类Dev

如何从其他组件更改反应组件的状态?

来自分类Dev

有什么方法可以操纵其他组件的组件状态?

来自分类Dev

ReactJS-如何设置其他组件的组件状态?

来自分类Dev

访问Angular中其他组件的变量

来自分类Dev

其他组件状态的om.next mutate不会导致其他组件重新呈现

来自分类Dev

从Dart中的其他Web组件访问状态

来自分类Dev

状态未在其他组件中更新

来自分类Dev

将状态传递给其他组件的最“反应”方式

来自分类Dev

网络上的瞬态变量携带状态如何?

来自分类Dev

切换按钮状态并重用其他按钮的切换功能

来自分类Dev

Angular2:从其他组件调用方法或变量

来自分类Dev

React.js如何从其他组件更改组件的状态

来自分类Dev

调用其他组件后如何在组件中保持状态

来自分类Dev

如何从其他组件 React Native 更新主组件状态

来自分类Dev

通过在全局变量中重用标题和其他关键花絮来避免视图重复

来自分类Dev

draft.js:文本编辑器从其他组件的状态填充值

来自分类Dev

除了引用以外,还可以通过其他方式访问子组件状态?

来自分类Dev

反应:使用直接值分配更新组件状态-是否有其他原因?

来自分类Dev

使用 Navgation Architechture 组件导航到其他片段时保持片段的状态

来自分类Dev

如何在 TFS 2018 中的其他现有版本定义中重用版本和环境变量?

来自分类Dev

带状态参数的IterateUntil

来自分类Dev

Redux状态被其他状态更改覆盖

来自分类Dev

组件受其他组件的道具影响?

Related 相关文章

  1. 1

    状态对其他组件的影响

  2. 2

    更改其他组件的状态-ReactJS

  3. 3

    React Native:从其他组件更改状态

  4. 4

    如何从其他组件更新状态?

  5. 5

    切换其他组件的状态

  6. 6

    React Native - 编辑其他组件的状态

  7. 7

    如何从其他组件更改反应组件的状态?

  8. 8

    有什么方法可以操纵其他组件的组件状态?

  9. 9

    ReactJS-如何设置其他组件的组件状态?

  10. 10

    访问Angular中其他组件的变量

  11. 11

    其他组件状态的om.next mutate不会导致其他组件重新呈现

  12. 12

    从Dart中的其他Web组件访问状态

  13. 13

    状态未在其他组件中更新

  14. 14

    将状态传递给其他组件的最“反应”方式

  15. 15

    网络上的瞬态变量携带状态如何?

  16. 16

    切换按钮状态并重用其他按钮的切换功能

  17. 17

    Angular2:从其他组件调用方法或变量

  18. 18

    React.js如何从其他组件更改组件的状态

  19. 19

    调用其他组件后如何在组件中保持状态

  20. 20

    如何从其他组件 React Native 更新主组件状态

  21. 21

    通过在全局变量中重用标题和其他关键花絮来避免视图重复

  22. 22

    draft.js:文本编辑器从其他组件的状态填充值

  23. 23

    除了引用以外,还可以通过其他方式访问子组件状态?

  24. 24

    反应:使用直接值分配更新组件状态-是否有其他原因?

  25. 25

    使用 Navgation Architechture 组件导航到其他片段时保持片段的状态

  26. 26

    如何在 TFS 2018 中的其他现有版本定义中重用版本和环境变量?

  27. 27

    带状态参数的IterateUntil

  28. 28

    Redux状态被其他状态更改覆盖

  29. 29

    组件受其他组件的道具影响?

热门标签

归档