我目前正在使用Scala,Play框架和React示例代码,并在尝试将以下代码转换为在浏览器中加载而不使用ES6模块系统时遇到了问题。这意味着我无法使用export default
。
如何在ES6中重写以下内容,以便在没有export default
的情况下将其加载到客户端?我是否必须将其分解为一个类和一个返回render
的函数?
export default function form({
fields: defaultFds = [],
validate: defaultVal = () => ({}),
} = {}) {
return (WrappedClass) => class Form extends React.Component {
static defaultProps = {
fields: defaultFds,
validate: defaultVal,
}
static childContextTypes = {
form: PropTypes.object,
fields: PropTypes.object,
}
static propTypes = {
fields: PropTypes.array,
validate: PropTypes.func,
value: PropTypes.object,
onChange: PropTypes.func,
onValidate: PropTypes.func,
}
state = {
touched: {},
errors: {},
valid: undefined,
}
render() {
const { value, onChange, onValidate, validate, fields, ...otherProps } = this.props;
return <WrappedClass {...otherProps} {...this.generatedProps()} />;
}
}
}
答案 0 :(得分:0)
你必须在这里重写整个事情......因为如果你不能使用ES6,你需要担心的事情比export default
还要多 - 所有的功能都是用() =>
需要重写,您可能无法使用JSX。
您是否阅读了有关该主题的React docs?