You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js router.push未跳转指定URL反而拼接参数的问题求助

问题解决方法

核心错误:阻止表单默认行为的方法拼写错误

你的submitHandler里的e.prevent.default()是拼写错误,正确写法应为e.preventDefault()。这个错误导致表单的默认GET提交行为未被阻止,浏览器会直接把表单数据拼接到URL上,而非执行你编写的router.push跳转逻辑。

修正后的submitHandler代码:

const router = useRouter();
const [selectedPaymentMethod, setSelectedPaymentMethod] = useState('');
const { state, dispatch } = useContext(Store);
const { cart } = state; // 确保已从state中解构cart

const submitHandler = (e: any) => {
    e.preventDefault(); // 修正拼写错误

    dispatch({ type: 'SAVE_PAYMENT_METHOD', payload: selectedPaymentMethod });

    // 修正Cookies存储逻辑(以js-cookie库为例)
    Cookies.set('cart', JSON.stringify({
        ...cart,
        paymentMethod: selectedPaymentMethod
    }));

    router.push('/placeorder');
};

额外检查点

  • 确认cart变量已从state中正确解构,否则Cookies存储逻辑会报错
  • 验证你使用的Cookies库(如js-cookie)已正确安装并导入,避免存储逻辑中断后续代码执行

内容的提问来源于stack exchange,提问作者JSharles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 13:50:16