当前位置: 首页 > 面试题库 >

React组件中的子项prop

时旭东
2023-03-14
问题内容

我现在正在学习反应。这是代码的链接-http:
//redux.js.org/docs/basics/ExampleTodoList.html

我在理解这段代码的内容时遇到了一些困难

const Link = ({ active, children, onClick }) => {
  if (active) {
    return <span>{children}</span>
  }

  return (
    <a
      href="#"
      onClick={e => {
        e.preventDefault()
        onClick()
      }}
    >
      {children}
    </a>
  )
}

Link.propTypes = {
  active: PropTypes.bool.isRequired,
  children: PropTypes.node.isRequired,
  onClick: PropTypes.func.isRequired
}

我最难以理解此片段

return (
        <a
          href="#"
          onClick={e => {
            e.preventDefault()
            onClick()
          }}
        >
          {children}
        </a>
      )
    }

{children}在这里是什么意思?它有什么作用?

这是做什么的?

children: PropTypes.node.isRequired,

上一行中的节点是什么意思?


问题答案:

当您使用自定义组件时,例如

<MyComponent>Hello World</MyComponent>

无论您在标签之间写什么(在上面的示例中为Hello World),都将作为children属性传递给组件。

所以当像

const Link = ({ active, children, onClick }) => {

你是解构的道具和只得到activechildrenonClick从道具传递到组件

考虑例如,您将Link组件称为

<Link active="true" onClick={someFunc} style={{color: 'orange'}}>Hello</Link>

然后,在所有道具中,即active, onClick, style, children,您将只active, onClick,children在组件中访问。

对于第二个问题:

这是做什么的?

子代:PropTypes.node.isRequired,

因此,这PropTypes是对传递给组件的道具执行typeCheck的方法。它是从react-proptypes包中导入的。

所以

children: PropTypes.node.isRequired

使道具children成为必需。因此,如果您将组件渲染为

<Link />

它不会通过类型检查,因此您需要做

<Link>Text</Link>


 类似资料:
  • 我有react组件A,它呈现一个表。表中某一列的数据通过另一个组件B呈现,因此是的子级。每当用户单击页面上的任何位置时,我希望在上执行一些操作。此click事件侦听器是在中定义的。如何从类内循环所有?我的组件结构如下所示: 我遇到了,但当通过将子级作为道具传递时,这很有用;例如,当代码如下所示时:

  • 我在react native中有一个搜索栏组件,它在父组件中导入, SearchBar子组件具有以下元素: 是否可以访问此子组件在其中导入的父组件中的状态?提前感谢你的帮助

  • 我想创建一个包含所有价格选项的列表,并将唯一的值放在下拉列表中,所以我这样做: 此代码引发错误: 警告:遇到具有相同键的两个子项。键应该是唯一的,以便组件在更新时维护它们的标识。非唯一键可能导致重复和/或省略子键-此行为不受支持,并且可能在未来版本中更改。 从到 更新我也添加到它呈现的地方。 和SearchHandlerPrice:

  • 我用React构建了3个组件。他们是: 包装器 列表 列表项 如何管理单击的复选框的状态。我想Wrapper知道哪些复选框被选中。