【问题标题】:Why 'name' is not passed to React component?为什么“名称”没有传递给 React 组件?
【发布时间】:2022-07-20 19:03:49
【问题描述】:

'name'参数是否唯一,为什么不通过?

我有一个名为Input 的组件。这是它的界面:

interface Props {
    className?: string
    colour?: ThemeColour
    multiLine?: boolean
    keyPath?: (string | number)[]
    onChangePrio?: Function
    onBlurPrio?: Function
    valuePrio?: any
    isInt?: Boolean
    isFloat?: Boolean
    formState?: any
    setFormState?: Function
    name?: string
}
const Input = ({
    className = '',
    multiLine = false,
    keyPath,
    onChangePrio,
    onBlurPrio,
    valuePrio,
    isInt,
    isFloat,
    formState,
    setFormState,
    name,
    ...rest
}: Props) => {
    console.log('n1', name)

这里叫:

<InputGroup title="Egyéb információ">
<Input
    formState={formState}
    setFormState={setFormState}
    name="additionalInfo"
    placeholder="pl. Szállással"
/>
</InputGroup>

可选参数不设置为 undefined 或 null 有问题吗?

我只看到这些重复的行:

n1 undefined
n1 undefined
n1 undefined
n1 undefined
n1 undefined
n1 undefined
n1 undefined
n1 undefined

为什么,尽管name 至少在一种情况下通过了。

【问题讨论】:

    标签: reactjs


    【解决方案1】:

    不,这当然不是问题。您在使用组件时未定义的任何道具将只是组件内的undefined(除非被例如defaultProps 覆盖)。

    function Greet({ name }: { name?: string }) {
      return <div>Hello, {String(name)}</div>;
    }
    
    export default function App() {
      return (
        <div className="App">
          <Greet name="János" />
          <Greet />
        </div>
      );
    }
    

    将渲染

    Hello, János
    Hello, undefined
    

    【讨论】:

    • 好的,但是name通过了,那为什么没有收到呢?
    • 您能否向我们展示一个最小的可重现示例,其中name 未正确传递?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    • 2021-04-21
    • 2019-01-17
    • 2021-03-05
    • 1970-01-01
    • 2023-03-15
    相关资源
    最近更新 更多