【发布时间】:2017-09-02 22:36:26
【问题描述】:
我正在尝试用 typescript 编写 React HOC,但我没有得到正确的定义。我不确定我想要实现的目标是否可行。
这是我的代码
import * as React from 'react'
export default function Ajax<Props, State>(InnerComponent: typeof React.Component): React.ComponentClass<Props & State> {
return class extends InnerComponent<Props & State,any> {
constructor() {
super()
this.state = {
request: 'initial'
}
}
changeRequest(newRequest) {
this.setState({request: 'loading'})
}
render() {
return <InnerComponent
{...this.props }
{...this.state}
changeRequest={this.changeRequest}
/>
}
}
}
如果我只是将道具和状态传递给孩子,它会起作用。但是如何编写定义以便能够将其他道具传递给包装的组件?在这种情况下,changeRequest 属性。
谢谢
【问题讨论】:
-
不知道哪里出了问题。被包装的组件需要知道所有的属性,你不应该在 HOC 中扩展它的属性定义。
标签: reactjs typescript higher-order-components