1

我定义了一个反应组件并使用流程来检查它:

/** @flow */
/** @jsx React.DOM */
var React = require('react');

var Hello = React.createClass({
    propTypes: {
        content: React.PropTypes.string.isRequired
    },
    render: function() {
        return (
            <section>hello</section>
        );
    }
});

module.exports = Hello;

但是flow报错:

/Users/twer/workspace/yyy/a.js:16:16,20: ReactElement
Missing annotation

因为 flow 需要一个具有明确类型的模块:http: //flowtype.org/docs/type-annotations.html#module-boundaries

对于一个反应组件,我需要在render方法上声明类型,所以我必须像这样修复它:

render: function(): ?ReactElement {
    return (
        <section>hello</section>
    );
}

问题是,它会破坏我的 IDEA 的格式化程序(因为?of ?ReactElement

还有其他地方可以放?ReactElement吗?

4

1 回答 1

2

我相信您现在已经想通了,但请注意,这?是可选的。

render: function(): React.Element {
   // ...
}
于 2015-05-18T16:18:57.190 回答