gar*_*mac 5 javascript ecmascript-6 reactjs react-proptypes
我知道您可以执行以下操作:
import React from "react";
import PropTypes from "prop-types";
const Header = ({ name }) => <div>hi {name}</div>;
Header.propTypes = {
name: PropTypes.string
};
export default Header
Run Code Online (Sandbox Code Playgroud)
但是,我可以propTypes为匿名导出的默认函数(export default () =>{})分配如下吗?:
export default ({ name }) => <div>hi {name}</div>;
//how do I do this part/ is it possible?
?.propTypes = {
name: PropTypes.string
};
Run Code Online (Sandbox Code Playgroud)
编辑:我尝试过:
export default ({ name }) => (<div>
// ----- here ------- (makes sense why, it doesn't work)
static propTypes = {
name: PropTypes.string
}
// ---------------
{name}
</div>);
Run Code Online (Sandbox Code Playgroud)
和:
// -------and like this at bottom --------
default.propTypes = {
name: PropTypes.string
}
// ------------------
Run Code Online (Sandbox Code Playgroud)
我认为以这种方式导出是不可能的,只是总体上已尝试的一项尝试。
Jor*_*ing 11
执行此操作的理智方法是将函数分配给变量:
const anon = ({ name }) => <div>hi {name}</div>;
anon.propTypes = {
name: PropTypes.string
};
export default anon;
Run Code Online (Sandbox Code Playgroud)
如果您真的相信自己有理由不这样做,那该怎么Object.assign办呢?
export default Object.assign(
({ name }) => <div>hi {name}</div>,
{ propTypes: { name: PropTypes.string } }
);
Run Code Online (Sandbox Code Playgroud)