小编bks*_*ine的帖子

ComponentDidUpdate SetState ReactJS 无限循环

即使有很多问题的主题行相同,我也无法得到我的问题的答案。

问题

我有一个选择下拉菜单。点击它,我调用一个 Api 来获取一些关键值。我将这组键值输入字段视为一个组件。所以每次我选择下拉菜单的 onChange 时,我都使用生命周期方法来处理 API 调用。此外,我记录这些输入键值并将它们的状态发送回父组件。

根据 ReactJS 生命周期方法:

我用

componentDidMount 初始渲染后第一次调用API。这有效。

componentDidUpdate 在选择下拉更改时为后续 API 调用调用 API。但问题就在这里。当我尝试更新输入字段的状态时,程序陷入无限循环,因此有无限的 API 调用。调试后我很确定问题出在 setState() 上,但我找不到在 componentDidUpdate 方法中处理状态的最佳方法。

链接完全复制了我的问题,但我想要一个标准化的解决方案

希望这很清楚。我在这里先向您的帮助表示感谢!

javascript reactjs

4
推荐指数
1
解决办法
8550
查看次数

哪个功能增长得更快

2 ^(n/2 + 10 log n)

要么

2 ^ N?

我在MIT OCW 6.006做了一个练习.它有一个问题,即后来比前者增长得更快.但我不同意这个证据.我说前者比后者增长得快.有人可以解释我是不是错了,让我知道为什么.谢谢!

algorithm big-o time-complexity

2
推荐指数
1
解决办法
809
查看次数

如何在Camel HTTP代理中获取和设置参数

举例来说,我有一个代码:

       from(servlet://abc?id={id}&name={name}).process(new Processor(){
     @Override
        public void process(Exchange arg0) throws Exception {
            id = arg0.getIn().getHeader("id", String.class);
            id_type = arg0.getIn().getHeader("name",String.class);

            System.out.println(id);
            System.out.println(name);
            String url = "//example.com/"+id+"?name="+name;
            System.out.println(url);

            /*Thread.sleep(10000);*/

        }.setHeader(Exchange.HTTP).to("http:"+url+"&bridgeEndpoint=true&throwExceptionOnFailure=false)"
Run Code Online (Sandbox Code Playgroud)

我在那里看不到我的网址。其显示为空值。如何解决这个问题呢?我曾经在Exchange标头中设置此字符串,但它给了我java.lang.IllegalArgumentException:

java proxy http apache-camel

2
推荐指数
1
解决办法
1万
查看次数