react runtime_error ai_generated true

警告:forwardRef 渲染函数只接受两个参数:props 和 ref。您是否打算使用 React.forwardRef?

Warning: forwardRef render functions accept exactly two parameters: props and ref. Did you mean to use React.forwardRef?

ID: react/forwardref-params-error

其他格式: JSON · Markdown 中文 · English
92%修复率
86%置信度
1证据数
2023-07-01首次发现

版本兼容性

版本状态引入弃用备注
[email protected] active
[email protected] active

根因分析

函数组件在使用 forwardRef 时定义了超过两个参数(例如 props、ref、extraParam),但 forwardRef 期望正好两个参数。

English

A function component is defined with more than two parameters (e.g., props, ref, extraParam) while using forwardRef, but forwardRef expects exactly two parameters.

generic

官方文档

https://reactjs.org/docs/forwarding-refs.html

解决方案

  1. Remove the extra parameter and use props object directly: `const MyComponent = React.forwardRef((props, ref) => { const { extraParam, ...rest } = props; return <div ref={ref}>...</div>; });`
  2. If you need additional parameters, pass them via props: `<MyComponent extraParam={value} />` and access `props.extraParam` inside the forwardRef function.

无效尝试

常见但无效的做法:

  1. Ignoring the warning and passing extra parameters anyway 80% 失败

    React will ignore the extra parameters, and the component may not behave as expected.

  2. Using a class component instead of a function component with forwardRef 50% 失败

    Class components handle refs differently; you may lose the benefits of forwardRef or cause other errors.

  3. Wrapping the component in another HOC that passes extra props 60% 失败

    This adds complexity without fixing the root cause; the extra parameter is still passed to the forwardRef function.