小编Rém*_*ado的帖子

React:在不使用额外的 <div /> 的情况下创建 onClick HOC

我想避免手动将onClick属性添加到我的自定义组件中。

为此,我想到了一个名为的高阶组件WithClick,它将用集成onClick属性包装我的组件。

我面临的问题是,为了包装它,我必须使用额外的<div />标签来访问事件属性。这个标签搞乱了我的 CSS。

例子 :

import React, { Component } from 'react'

const WithClick = (WrappedComponent) => {
  class BaseComponent extends Component {
    render () {
      return (
        <div onClick={this.props.onClick}>
          <WrappedComponent {...this.props} />
        </div>
      )
    }
  }

  return BaseComponent
}

export default WithClick
Run Code Online (Sandbox Code Playgroud)

解决方案是 hack,允许将 onClick 事件附加到<React.Fragment />标签或类似的东西。

我尝试将 ref 附加到孩子,但它不起作用,我必须对待孩子的 ref 道具,所以这样做没有意义。

你知道一个解决方法吗?

javascript reactjs

7
推荐指数
1
解决办法
5302
查看次数

C中采用未知类型参数的泛型函数

我正在尝试使用未知类型参数创建一些函数来通用地应用函数。

让我们以一个可以应用于close(int fd)数组的每个元素的函数为例:

void for_each(void *array[], void (*func)(void *))
{
    for (size_t i = 0; array[i] != NULL; ++i)
        func(array[i]);
}
Run Code Online (Sandbox Code Playgroud)

如果我想将这个函数与 一起使用close(int fd),我必须制作一个这样的包装函数:

void close_fd(void *fd)
{
    close(*(int *)fd);
}
Run Code Online (Sandbox Code Playgroud)

我想将此for_each函数与字符串、浮点数和其他所有内容一起使用。

  • 如果没有包装部分,就没有什么可以实现的吗?
  • 我知道 C++ 有很多方法可以做到这一点,例如 lambdas、模板等,但是在 C 中有什么好方法吗?妥协

c generic-programming

5
推荐指数
1
解决办法
1000
查看次数

Children.toArray() - TS2339:类型“ReactChild | ”上不存在属性“key” 反应片段 | ReactPortal'... - React Typescript

我正在创建一个 TypeScript 组件/包装器,在每个子组件之间添加一个分隔线:

\n
import React, { FC, Children } from \'react\'\n\nconst DividedChildren: FC = ({ children }) => {\n  return (\n    <div>\n      {Children.toArray(children).map((node, index) => {\n        if (index === 0) return node\n        return (\n          <Fragment key={node.key}> // TS Error, but code works fine\n            <div className="divider" />\n            {node}\n          </Fragment>\n        )\n      })}\n    </div>\n  )\n
Run Code Online (Sandbox Code Playgroud)\n

key但是,当我尝试将孩子移动到他的新容器中时,出现 TypeScript 错误:
\nTS2339: Property \'key\' does not exist on type \'ReactChild | ReactFragment | ReactPortal\'. \xc2\xa0\xc2\xa0Property \'key\' does not exist on type \'string\'. …

children key typescript reactjs

5
推荐指数
1
解决办法
1226
查看次数