2

在此处输入图像描述

我们正在开发一个组件,因为这也适用于,我们希望使用react-native能够创建也可以在浏览器上测试的基本示例。 react-native-paperweb storybook

但是我们遇到了以下错误的问题,这些错误不取决于我们,而是取决于我们使用的库。

正如您在错误下方看到的那样,该组件似乎已加载了数据。

有人知道如何帮助我们了解确切的错误是什么(以防万一如何解决它),还可以联系指定的模块以纠正它们。

"dependencies": {
    "react": "16.13.1",
    "react-native": "0.63.1",
    "react-native-paper": "^4.5.0",
    "react-native-vector-icons": "^7.1.0",
    "react-native-web": "^0.13.4",
    "styled-components": "^5.1.1"
  }
4

1 回答 1

1

遇到同样的问题;我正在制作可以同时使用react-domreact-native(使用react-native-web)的组件。我还使用 Storybook 单独测试/开发组件。

这里描述的解决方案对我有用。

据我了解,问题是由于@babel/plugin-proposal-class-properties在编译期间未包含该插件。

我最终得到以下结果.storybook/webpack.config.js;因为我链接的解决方案格式有点错误。

const path = require('path')

module.exports = async ({config, mode}) => {
  config.module.rules.push({
    test: /\.(js|jsx|ts|tsx)$/,
    loader: 'babel-loader',
    include: path.resolve(__dirname, '../node_modules/'),
    options: {
      presets: [
        "@babel/env",
        "@babel/preset-react",
        "module:metro-react-native-babel-preset",
      ],
      plugins: [
        "react-native-web",
        "@babel/plugin-proposal-class-properties"
      ]
    }
  })

  config.module.rules.push({
    test: /\.ttf$/,
    loader: 'url-loader',
    include: path.resolve(__dirname, '../node_modules/react-native-vector-icons/Fontisto.js')
  })

  config.resolve.alias = {
    'react-native': 'react-native-web'
  }

  return config
}

PS我使用这个人的问题来获得推荐的“网络”安装。我的.storybook/preview.js长相与此类似:

... (export parameters, export globalTypes, etc..)

// ==
import Fontisto from '../node_modules/react-native-vector-icons/Fontisto'
import iconFont from '../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf'

const iconFontStyle =`
  @font-face {
    src: url(${iconFont});
    font-family: Fontisto;
  }
`

const style = document.createElement('style')
style.type = 'text/css'
if (style.styleSheet) {
  style.styleSheet.cssText = iconFontStyle
} else {
  style.appendChild(document.createTextNode(iconFontStyle))
}
document.head.appendChild(style)
//

希望一切顺利!

PPS抱歉,值得一提的是,我不确定这个 Babel 配置是否更适合.storybook/main.js Storybook.js 的推荐。我无法使这种方法起作用;并且找不到任何关于我将如何去做的例子;我上面提到的解决方案首先出现。

于 2020-12-22T17:27:56.883 回答