样式不适用于我在 TypeScript 中创建的 React 库

Posted

技术标签:

【中文标题】样式不适用于我在 TypeScript 中创建的 React 库【英文标题】:Styles aren't applied to the React library I made in TypeScript 【发布时间】:2020-11-21 05:10:17 【问题描述】:

我创建了一个 React 库 https://github.com/deadcoder0904/react-typical/ 并在 examples/ 文件夹中的该组件中添加了样式,但未应用样式。

这是example/index.tsx 文件:

import 'react-app-polyfill/ie11';
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import  ReactTypical  from '../.';

const App = () => 
  const hypeText = ['Creator', 'Entrepreneur', 'Doer', 'Lone Wolf'];
  return (
    <>
      <ReactTypical
        style=
          color: 'red',
          fontSize: 256,
        
        steps=hypeText.flatMap(hype => [hype, 5000])
        loop=Infinity
      />
    </>
  );
;

ReactDOM.render(<App />, document.getElementById('root'));

style 属性已添加到库中的 src/index.tsx 文件中:

export type Props = 
  steps: Array<any>;
  loop: number;
  className?: string;
  wrapper?: keyof JSX.IntrinsicElements;
 & React.htmlAttributes<HTMLOrSVGElement>;

我认为 React.HTMLAttributes 包含所有 React HTML 属性,因此 style 必须在那里可用。

是不是我做错了什么?

【问题讨论】:

【参考方案1】:

您的库接受任何 React.HTMLAttributes&lt;HTMLOrSVGElement&gt;,但不使用它们,也不传递它们。

你需要这样的东西:

const Typical = ( steps, loop, className, wrapper: Wrapper = 'p', ...otherProps : Props) => 

...

return React.createElement(Wrapper, 
  ...otherProps,
  ref: typicalRef,
  className: typicalStyles,
);

【讨论】:

谢谢你的工作。需要打字吗?我的意思是otherProps 的类型是什么,或者我应该这样保留它吗? 没有。 otherPropsPropsProps 的某个子集。打字稿应该自动处理这个。

以上是关于样式不适用于我在 TypeScript 中创建的 React 库的主要内容,如果未能解决你的问题,请参考以下文章

Nodejs 加密模块不适用于打字稿

如何更改在VBA中创建的下拉列表的字体大小和格式

如何重新打开在 OS X 的故事板中创建的关闭窗口

由 Terraform 在 LocalStack 中创建的 DynamoDB 表在 NoSQL Workbench 中不可见

如何收听我在 Python 中创建的音频?

缩进不适用于自定义 UITableViewCell