当前位置: 首页 > 知识库问答 >
问题:

在ReactJs中将useEffect()与选项卡一起使用

李兴安
2023-03-14

我有下一个代码:

null

js prettyprint-override">const Demo = () => (
  <Tabs defaultActiveKey="1" onChange={callback}>
    <TabPane tab="Tab 1" key="1">
      <Inner d={5} />
    </TabPane>
    <TabPane tab="Tab 2" key="2">
      <Inner d={3455} />
    </TabPane>
    <TabPane tab="Tab 3" key="3">
      <Inner d={54} />
    </TabPane>
  </Tabs>
);

// Inner

export const Inner = ({ d }) => {
  React.useEffect(() => {
    console.log(d, "ss");
  }, [d]);
  return <div>{d}</div>;
};

null

如何注意到inner组件内部,我得到了一个道具。我的问题是下一个:为什么当我更改选项卡时,单击每个选项卡,我会在useEffect中获得正确的数据console.log(d,“ss”);,但如果我在同一个选项卡上单击两次,我在console中没有获得值?即使我添加了依赖项,也会发生这种情况。如何在控制台中每次获得值,甚至在同一个选项卡上点击两次?
演示:https://codesandbox.io/s/basic-antd4151-forked-swj43?file=/inner.js:142-267

共有1个答案

劳华灿
2023-03-14

您可能希望使用onTabClick而不是useEffect

 类似资料:
  • 问题内容: 最近,我开始与路由器一起使用来构建应用程序。 我通常将use 用于依赖项和代码管理。但是,当我尝试包含包含语法的文件时会出现问题。 这就是我目前所拥有的: 如何将IndexComponent放在其自己的文件中并在此文件中调用它?我尝试了通常的方法(与骨干和反应相同),但是由于语法错误。 问题答案: 所以我自己弄清楚了。 我从此仓库获得了必要的文件和说明:jsx- requirejs-p

  • 问题内容: 我以前曾使用该命令在Redis数据库中搜索与特定模式匹配的键。从Redis 2.8开始,该命令似乎比它更可取,因为它返回一个迭代器,而不是立即扫描整个键空间。 我正在使用Predis > = 0.8.5,它应该支持该命令的PHP迭代器。Predis没有很多文档,所以我想知道如何将以下命令转换为对应的命令: 我尝试了以下方法: 哪种方法有效-但不会返回本地PHP迭代器。使用Predis的

  • 问题内容: 我正在使用jaxws-maven-plugin为Web服务使用者应用程序执行wsimport。我正在使用2010年随JAX-WS 2.2.2 RI引入的wsimport上的选项。之所以这样做,是因为我想将WSDL捆绑在jar中。 我在制作pom时没有问题。对于插件配置,我可以执行以下操作: 当我执行构建时,我创建的jar称为,其中包含文件。在的META- INF目录中,可以找到wsdl

  • 我正在使用一个选项卡activity。在其中一个选项卡中,我有两个按钮和一个RecyclerView。在RecyclerView中,我有两个Spinner和一个EditText。第一个按钮的目的是在RecyclerView中添加一个新项,第二个按钮的目的是在Spinner和EditTexts中保存选定的元素。 我的问题是,当屏幕旋转时,Recyclerview被清空。我尝试使用OnSaveInst

  • 问题内容: 我在selenium离子中停留了一点 场景是这样的 现在,从那时起,我们必须将重点转移到该新标签上,因为其余的测试将在该新标签上进行。 我写的代码如下 此代码无法正常工作,直到从下拉菜单中单击子菜单为止,并且日志中显示错误 因此,当我尝试运行该测试用例时,它会显示错误 [警告]链接具有目标’_blank’,Selenium不支持该目标! 随机目标为:selenium_blank8441

  • 下面是我的部分项目。clj文件 我正在用苹果酒和emacs。当我喝苹果酒的时候,杰克从杏仁开始。主ns而不是用户ns。如何在用户ns中启动并同时运行刷新fn?