const backUrl = "https://626d63f2e58c6fabe2d4dc9a.mockapi.io/items"
function Main() {
const [items, setItems] = useState([])
useEffect(() => {
async function fetchItems() {
const response = await fetch(backUrl);
const data = await response.json();
console.log("EffectUsed")
setItems(data)
}
fetchItems()
}, []);
}
同时,在渲染和重新渲染期间,钩子会触发 2 次。我不知道该怎么办了
StrictMode
在 mode 中渲染组件两次,development
但不在production
. 根据开发人员的说法React
- 这可以让您检测代码中的一些问题(如果有的话)并警告您更多细节在这里
Обнаружение неожиданных побочных эффектов
非常类似于一个反应错误。或者可能不是错误(来源):
createRoot
如果使用旧渲染而不是新渲染render
,则效果将按应有的方式调用 1 次。这适用于第 17 次和第 18 次反应,但第 18 次给出了旧渲染已过时的警告。在生产版本中,无论如何只会有一个调用(以及一个渲染):