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

能否向未声明形参的React Hook传递参数?

React自定义Hook入参定义问题解答

你需要在useHook的函数定义中补充对应形参来接收传入值,保留无参定义的做法完全不可行,原因如下:

  • 从JavaScript语法规则来说,给未声明形参的函数传参不会触发语法报错,但你在函数内部没有对应形参的话,根本无法读取调用方传入的{thingy1, thingy2, thingy3}对象。虽然可以通过arguments对象取传入值,但这种写法完全不符合React Hook的编码规范,属于没必要的奇技淫巧,测评场景下绝对不推荐。
  • 你提到的“不能随意修改指定代码”的规则,约束范围是已经写死的调用侧代码(也就是thing.jsx里的Hook调用逻辑),你修改的是待实现的useHook.js内部逻辑,给待实现的函数补充形参是完成功能的必要步骤,不属于违规修改。

正确写法参考

你可以直接在形参位置解构传入的对象,方便后续逻辑直接使用传入值:

// useHook.js
function useHook({ thingy1, thingy2, thingy3 }) {
  // 此处即可基于传入的三个参数实现Hook逻辑
  // 完成状态定义、副作用处理、返回值封装等操作
}

export default useHook;

如果后续可能扩展入参字段,也可以先接收整个配置对象,再在函数内部解构:

// useHook.js
function useHook(config) {
  const { thingy1, thingy2, thingy3 } = config;
  // 后续逻辑实现
}

export default useHook;

注意:不要保留无参的Hook定义,这种写法下你完全拿不到调用方传入的配置参数,根本无法实现指定功能,必然无法通过测评。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 21:00:54