属性 'push' 类型不存在 'NavigateFunction' Typescript
Property 'push' does not exist on type 'NavigateFunction' Typescript
由于新版本 6 不允许使用历史记录;我使用“useNavigate”而不是 useHistory。在接受用户输入后,这些输入数据应该进入下一页。
使用“History.push”命令传递数据时显示此错误:
属性 'push' 在类型 'NavigateFunction'
上不存在
代码如下:
import { useNavigate } from "react-router-dom";
export interface UserData {
name: string;
gender: string;
lang: string;
}
const history = useNavigate();
const [UserData, setUserData] = useState<UserData>({
name: "",
gender: "Male",
lang: "React",
});
const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {
const { name, value } = e.target;
setUserData({ ...UserData, [name]: value });
};
const handleSubmit = () => {
history.push("/exam", UserData);
};
我应该更改和添加什么?
useNavigate
钩子 returns 一个 函数 ,而不是带有 [=14= 的历史对象]方法。
declare function useNavigate(): NavigateFunction;
interface NavigateFunction {
(
to: To,
options?: { replace?: boolean; state?: any }
): void;
(delta: number): void;
}
将 history
重命名为 navigate
,这样以后就不会混淆了。
const navigate = useNavigate();
调用navigate
函数并在state
属性.
下的第二个参数,可选的options
参数中传递状态
const handleSubmit = () => {
navigate("/exam", { state: UserData });
};
由于新版本 6 不允许使用历史记录;我使用“useNavigate”而不是 useHistory。在接受用户输入后,这些输入数据应该进入下一页。 使用“History.push”命令传递数据时显示此错误:
属性 'push' 在类型 'NavigateFunction'
上不存在代码如下:
import { useNavigate } from "react-router-dom";
export interface UserData {
name: string;
gender: string;
lang: string;
}
const history = useNavigate();
const [UserData, setUserData] = useState<UserData>({
name: "",
gender: "Male",
lang: "React",
});
const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {
const { name, value } = e.target;
setUserData({ ...UserData, [name]: value });
};
const handleSubmit = () => {
history.push("/exam", UserData);
};
我应该更改和添加什么?
useNavigate
钩子 returns 一个 函数 ,而不是带有 [=14= 的历史对象]方法。
declare function useNavigate(): NavigateFunction; interface NavigateFunction { ( to: To, options?: { replace?: boolean; state?: any } ): void; (delta: number): void; }
将 history
重命名为 navigate
,这样以后就不会混淆了。
const navigate = useNavigate();
调用navigate
函数并在state
属性.
options
参数中传递状态
const handleSubmit = () => {
navigate("/exam", { state: UserData });
};