javascript - 如何在功能组件上接收 express 发送的数据?
问题描述
function Header(props) {
const [ serverData, setServerData ] = useState({});
fetch('http://localhost:4001/api')
.then(res => res.json())
.then((data) => {
setServerData(data);
console.log(data);
});
return (
<div>{serverData}</div>
);
}
我正在尝试制作这个功能性的 React 组件来从 express api 获取数据。
我的代码编辑器一直关闭,我认为接收数据部分在循环中。
我怎样才能使这个功能组件只获取一次数据,而不使用 componentdidmount 或类类型组件。
我试过useCallback,它对我不起作用..
解决方案
如果你想这样做,请使用 useEffect 钩子。If 将发生一次,除非依赖项发生变化(此处未列出依赖项)。
function Header(props) {
const [ serverData, setServerData ] = useState({});
useEffect(() => {
fetch('http://localhost:4001/api')
.then(res => res.json())
.then((data) => {
setServerData(data);
console.log(data);
});
}, []);
return (
<div>{serverData}</div>
);
}
推荐阅读
- javascript - OpenLayers 根据缩放级别为多个图标显示一个图标
- android - 如何在 Android Studio 中从 Firebase 中查找特定值的计数?
- node.js - 在nodeJS中的函数内部调用函数
- android - 根据父活动在片段中调用不同的方法
- c++ - C++ 链接器无法处理 glCreateShader 并且正在重新定位 glewCreateShader
- php - 添加到购物车时将产品当前选择的变体 SKU 值获取到像素数据层中
- python-3.x - 当pyqt5中的主窗口更改时销毁对象
- javascript - 在 redis 滑动窗口速率限制器实现中重命名此键的目的是什么?
- javascript - Javascript对象在服务器端通过空
- javascript - 转到其他页面后使视频不重新加载?