因此,我有一个代码块,有效地获取url并将其转换为一个请求到Open。
问题是,无论出于什么原因,我的axios.get似乎被执行了两次。相对新开发人员的反应,我猜我是忽略了一些基本的东西。
任何建议都会受到极大的欢迎。提前谢谢。
import React, { useEffect, useState } from "react";
import axios from 'axios';
import {useParams} from 'react-router-dom';
import configData from './config/config.json'
const Article = () => {
console.log('0')
const requestarticle = useParams();
console.log('1')
const [url] = useState(configData.BACKEND_URL + '/articles/' + requestarticle.page)
console.log('2')
const [article, setArticle] = useState(null)
console.log('3')
useEffect(() => {
console.log('4')
axios.get(url)
.then(Response =>
{setArticle(Response.data)}
)
}, [url])
if (article){
return (
<>
<div id="page-content" dangerouslySetInnerHTML={{__html: article.content}} class="container-sm text-start border border-dark rounded border-3"></div>
</>
);
}
return(
<h1> NOTHING TO RETURN</h1>
)
}
export default Article ;发布于 2022-05-29 16:21:19
这是由于[StrictMode](https://reactjs.org/docs/strict-mode.html)最有可能在您的根树。
什么是严格模式?
StrictMode是一个用于突出显示应用程序中潜在问题的工具。
如何使useEffect() 运行两次?
它为它的后代激活额外的检查和警告,换句话说.渲染两次。
Note:严格模式检查仅在开发模式下运行;它们不影响产品构建。
https://stackoverflow.com/questions/72425350
复制相似问题