小编Man*_* P.的帖子

React:对API的请求触发两次then块,请求发送两次

我知道 API 调用一定不能放入 render 方法中,但这只是为了测试:\n我有以下代码。当我将 fetchData 调用到渲染方法时,“发送请求...”消息被打印一次,响应被打印两次!?

\n

输出:

\n

第1页...渲染

\n

发送请求 ...

\n

{数据:“你好”,状态:200,statusText:“”,标题:{\xe2\x80\xa6},配置:{\xe2\x80\xa6},\xc2\xa0\xe2\x80\xa6}

\n

{数据:“你好”,状态:200,statusText:“”,标题:{\xe2\x80\xa6},配置:{\xe2\x80\xa6},\xc2\xa0\xe2\x80\xa6}

\n
\n

为什么会出现这种情况?我还检查了网络选项卡,两个请求都是 GET,而不是与 CORS 相关的选项。

\n

同样在服务器上,GET 方法处理程序已执行两次。

\n
import React from \'react\';\nconst axios = require(\'axios\').default;\n\nclass Page1 extends React.Component {\n\n    // componentDidMount() {\n    //     this.fetchData()\n    // }\n\n    fetchData() {\n        console.log(\'Send request ...\');\n        axios.get(\'http://localhost:8080/api/hello/\')\n        .then(function (response) {\n            console.log(response);\n            return response.data;\n        })\n        .catch(function (error) {\n            console.log(error);\n        });\n    }\n\n\n    render() {\n        console.log(\'[Page 1] render called\')\n        this.fetchData();\n        return (<h1>Hello from Page 1. </h1>);\n    }\n}\nexport default …
Run Code Online (Sandbox Code Playgroud)

reactjs axios

3
推荐指数
1
解决办法
7167
查看次数

标签 统计

axios ×1

reactjs ×1