【发布时间】:2018-03-27 00:36:11
【问题描述】:
看看这个类:
/* @flow */
import React, { PureComponent } from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
const mapStateToProps = (state) => ({
email: ...
});
@connect(mapStateToProps)
class UserControlPanel extends PureComponent {
static propTypes = {
email: PropTypes.string
}
logout = (ev:any) => {
ev.preventDefault();
...
}
render() {
const { email } = this.props;
return (
<div className="ucp">
...
</div>
);
}
}
export default UserControlPanel;
这是一个简单的 React 组件类,它接受名为 email 的单个字符串 prop。但是当我运行流程时,它给了我这个错误:
[flow] 属性
UserControlPanel的 props 中找不到属性另见:React 元素UserControlPanel)
我错了什么?我也试过这个:
type Props = {
email: string;
};
@connect(mapStateToProps)
class UserControlPanel extends PureComponent {
props:Props
static propTypes = {
email: PropTypes.string
}
或者这个:
type Props = {
email: string;
};
@connect(mapStateToProps)
class UserControlPanel extends PureComponent<Props> {
static propTypes = {
email: PropTypes.string
}
两者都行不通。仅使用 Component 而不是 PureComponent 也不起作用。
如何让 flow 理解我的 prop 类型并且不再显示错误消息?
【问题讨论】:
标签: javascript reactjs properties ecmascript-6 flowtype