该useEffect阵营钩将运行在功能上传递的每一个变化.这可以进行优化,只有在所需的属性发生变化时才能调用它.
如果我想调用初始化函数componentDidMount而不是在更改时再调用它会怎么样?假设我想加载一个实体,但加载函数不需要组件中的任何数据.我们怎么能用useEffect钩子做这个?
class MyComponent extends React.PureComponent {
componentDidMount() {
loadDataOnlyOnce();
}
render() { ... }
}
Run Code Online (Sandbox Code Playgroud)
使用钩子,这可能是这样的:
function MyComponent() {
useEffect(() => {
loadDataOnlyOnce(); // this will fire on every change :(
}, [...???]);
return (...);
}
Run Code Online (Sandbox Code Playgroud) axios.post我在使用相同的正文发送两次相同的请求时遇到问题。我尝试用谷歌搜索这个问题,但一无所获。我该如何修复它?
应用程序.js
import logo from './logo.svg';
import './App.css';
import Register from "./register";
import SendToken from "./sendToken";
import {BrowserRouter, Routes, Route} from "react-router-dom";
import Confirmation from "./Confirmation";
import {useParams} from "react-router-dom";
function App() {
return (
<BrowserRouter>
<div>
<Routes>
<Route path="/registration" element={<Register/>}/>
<Route path="/confirmation" element={<Confirmation/>}/>
<Route path="/account/registrationConfirm/:data" element={<SendToken/>}/>
</Routes>
</div>
</BrowserRouter>
);
}
export default App;
Run Code Online (Sandbox Code Playgroud)
发送令牌.js
import axios from 'axios';
const SendToken = () => {
let parts = window.location.href.split('/');
let length = parts.length;
let token = parts[length - …Run Code Online (Sandbox Code Playgroud)