gpt4 book ai didi

reactjs - 静态 propTypes 在 ES6 下不起作用

转载 作者:行者123 更新时间:2023-12-03 13:14:19 29 4
gpt4 key购买 nike

我想为 Prop 添加一些规则:

import React, { Component } from 'react'

export default class App extends Component {
static propTypes = { name: React.PropTypes.string.isRequired };

render() {
return(
)
}
}

但是我得到了一个错误:

Warning: Failed prop type: Required prop `name` was not specified in `App`.

我对 babel 有这样的配置:

{
"presets": ["es2015", "react"],
"plugins": ["transform-runtime", "transform-class-properties"]
}

我做错了什么?

更新。更改代码:使用static

最佳答案

看来您没有以可以识别静态类属性的方式转译代码。如果您使用 babel,可以通过使用类属性转换来启用此功能:https://babeljs.io/docs/plugins/transform-class-properties/

在我们的代码库中,我们通过阶段 1 预设 https://babeljs.io/docs/plugins/preset-stage-1/ 获得此功能。

当然,您始终可以在类上定义您的 proptypes:

export default class App extends Component {
...
render() {
...
}
}

App.propTypes = {
data: PropTypes.object.isRequired...
}

^^ 这不需要任何特殊的转译。

类中的静态属性很好,所以你可以像这样设置它

export default class App extends Component {
static propTypes = { name: React.PropTypes.string.isRequired };
render() {...}
}

而不是在构造函数中的 this 上定义 propTypes。

关于reactjs - 静态 propTypes 在 ES6 下不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38363156/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com