我知道 API 调用一定不能放入 render 方法中,但这只是为了测试:\n我有以下代码。当我将 fetchData 调用到渲染方法时,“发送请求...”消息被打印一次,响应被打印两次!?
\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为什么会出现这种情况?我还检查了网络选项卡,两个请求都是 GET,而不是与 CORS 相关的选项。
\n同样在服务器上,GET 方法处理程序已执行两次。
\nimport 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)