将属性类型添加到未命名的匿名默认导出函数 - e.i "export default () =>{}"
Adding proptypes to unnamed anonymous default exported functions - e.i "export default () =>{}"
我知道您可以执行以下操作:
import React from "react";
import PropTypes from "prop-types";
const Header = ({ name }) => <div>hi {name}</div>;
Header.propTypes = {
name: PropTypes.string
};
export default Header
但是我可以像下面这样用匿名导出的默认函数 (export default () =>{}
) 分配 propTypes
吗?:
export default ({ name }) => <div>hi {name}</div>;
//how do I do this part/ is it possible?
?.propTypes = {
name: PropTypes.string
};
编辑:我试过:
export default ({ name }) => (<div>
// ----- here ------- (makes sense why, it doesn't work)
static propTypes = {
name: PropTypes.string
}
// ---------------
{name}
</div>);
和:
// -------and like this at bottom --------
default.propTypes = {
name: PropTypes.string
}
// ------------------
我认为不可能,以这种方式导出,只是整体方法中的一种尝试。
找到方法后,我可以执行以下操作:
require('./Header').default.propTypes = {
name: PropTypes.string
};
其中 Header
是导出的文件。
这种方法有什么缺点吗(这是将同一个文件加载回内存吗?)?在野外从未见过这种图案?这可能是有充分理由的,因为我正在重新导入它。
明智的做法是将函数分配给一个变量:
const anon = ({ name }) => <div>hi {name}</div>;
anon.propTypes = {
name: PropTypes.string
};
export default anon;
如果你真的相信你有理由不以理智的方式去做,Object.assign
怎么样?
export default Object.assign(
({ name }) => <div>hi {name}</div>,
{ propTypes: { name: PropTypes.string } }
);
我知道您可以执行以下操作:
import React from "react";
import PropTypes from "prop-types";
const Header = ({ name }) => <div>hi {name}</div>;
Header.propTypes = {
name: PropTypes.string
};
export default Header
但是我可以像下面这样用匿名导出的默认函数 (export default () =>{}
) 分配 propTypes
吗?:
export default ({ name }) => <div>hi {name}</div>;
//how do I do this part/ is it possible?
?.propTypes = {
name: PropTypes.string
};
编辑:我试过:
export default ({ name }) => (<div>
// ----- here ------- (makes sense why, it doesn't work)
static propTypes = {
name: PropTypes.string
}
// ---------------
{name}
</div>);
和:
// -------and like this at bottom --------
default.propTypes = {
name: PropTypes.string
}
// ------------------
我认为不可能,以这种方式导出,只是整体方法中的一种尝试。
找到方法后,我可以执行以下操作:
require('./Header').default.propTypes = {
name: PropTypes.string
};
其中 Header
是导出的文件。
这种方法有什么缺点吗(这是将同一个文件加载回内存吗?)?在野外从未见过这种图案?这可能是有充分理由的,因为我正在重新导入它。
明智的做法是将函数分配给一个变量:
const anon = ({ name }) => <div>hi {name}</div>;
anon.propTypes = {
name: PropTypes.string
};
export default anon;
如果你真的相信你有理由不以理智的方式去做,Object.assign
怎么样?
export default Object.assign(
({ name }) => <div>hi {name}</div>,
{ propTypes: { name: PropTypes.string } }
);