当前位置: 首页 > 知识库问答 >
问题:

前端 - React中我们传Props的参数是否可用props方式,也可用slot方式?

贝研
2023-05-26

有一段示例代码:

import React from 'react'

interface FormProps<T> {
  values: T,
  children: (values: T) => React.ReactElement
}

const Form = <T extends {}>({values, children}: FormProps<T>) => {
  return children(values)
}

const App: React.FC = () => {
  return (
    <div className='App'>
      <Form <{lastName: string | null}> values = {{ lastName: "leo" }}>
        {values => <div>{values.lastName}</div>}
      </Form>
    </div>
  )
}

export default App 

请问一下
1、Form这个组件:
定义:

interface FormProps<T> {
  values: T,
  children: (values: T) => React.ReactElement
}

const Form = <T extends {}>({values, children}: FormProps<T>) => {
  return children(values)
}

使用:

<Form <{lastName: string | null}> values = {{ lastName: "leo" }}>
    {values => <div>{values.lastName}</div>}
</Form>

请问下:
1)我们传Props的参数是否可用props方式,也可用slot方式?
是否Props的children参数,只能用slot的方式传递?
2)一般约定俗成而言,children都是传递<xxx>子组件是吗?

共有2个答案

曾喜
2023-05-26

React 里哪来的 slot?你这是跟 Vue 弄混了?

React 里实现类似的功能是通过 props.children 的。


难不成你管 JSX 里这部分叫 Slot 了?

image.png

燕野
2023-05-26

1."slot"这个在React里用的不是很多,更多的是在Vue里用,React用Props传数据,函数、组件之类的,Props的children参数也是Props,Props里的子元素
2.对的,这样父组件可以灵活的控制子组件

 类似资料:
  • 本文向大家介绍vue中使用props传值的方法,包括了vue中使用props传值的方法的使用技巧和注意事项,需要的朋友参考一下 1.静态传值(在父组件中赋值好props中属性的值传递给子组件) 父组件 子组件 结果:打印hello 2.动态传递(根据父组件中值的改变,props动态的改变子组件中的值) 父组件 2.子组件 结果:两者同步改变 以上所述是小编给大家介绍的vue中使用props传值的方

  • React 的props传递是否只能传递对象,而不能传递数组? 我有如下的数组数据: 传递数据到: 我在组件内接受的时候,会变成对象: 所以,是否React 的props传递是否只能传递对象,而不能传递数组?如果想要传递数组应该怎么传递呢?对treeData 进一步封装是吗?

  • 主要内容:使用 Props,React 实例,默认 Props,React 实例,State 和 Props,React 实例,Props 验证,React 16.4 实例,React 15.4 实例state 和 props 主要的区别在于 props 是不可变的,而 state 可以根据与用户交互来改变。这就是为什么有些容器组件需要定义 state 来更新和修改数据。 而子组件只能通过 props 来传递数据。 使用 Props 以下实例演示了如何在组件中使用 props: React 实例

  • 本文向大家介绍Vue.js组件使用props传递数据的方法,包括了Vue.js组件使用props传递数据的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Vue.js使用props传递数据的具体代码,供大家参考,具体内容如下 基本用法 通常父组件的模板中包含子组件,父组件要正向地向子组件传递数据或参数,子组件接收到后根据参数的不同来渲染不同的内容或执行操作。这个正向传递数据的过程

  • 本文向大家介绍为什么说React中的props是只读的?相关面试题,主要包含被问及为什么说React中的props是只读的?时的应答技巧和注意事项,需要的朋友参考一下 react官方文档中说道,组件无论是使用函数声明还是通过class声明,都绝不能修改自身的props,props 作为组件对外通信的一个接口,为了保证组件像纯函数一样没有响应的副作用,所有的组件都必须像纯函数一样保护它们的props

  • 我知道这个问题被问了很多次,但仍然不清楚。很多人刚才说, 如果您想访问,请将道具传递给构造函数 答案的另一个例子 Oficial doc说类组件应该始终使用props调用基构造函数,但如果我们不将传递给,我们仍然会将放在除构造函数之外的所有地方。 同样从react源代码中,我们可以看到react.Component 但这更让我困惑应使用两个参数调用:和。但是我们调用了super-empty,仍然可