转发道具以反应组件流

时间:2018-03-01 16:54:02

标签: reactjs flowtype

转发道具的基本思路是我想要增强元素, 通过撰写它。 E.g。

class MyButton extends Component {
    render() {
        const { busy, children, ...props } = this.props
        return <button { ...props }>
            { busy ? "busy" : children }
        </button>
    }
}

这里我可以为按钮元素添加一个额外的属性(忙), 但仍然将按钮元素的所有属性传递给 &#34;实&#34;按钮。 这节省了大量的写作,因为我不必每次都写 财产再次。此外,如果按钮界面更改了我的按钮包装器 会自动适应。

现在我想用流式注释做同样的事情。

class Button extends Component<props_t, state_t> {
    render() { ... }
}

但是我应该如何定义props_t。 如果我写

type props_t = { busy: boolean }

这只会接受繁忙的财产。

我的想法是使用联合类型并执行以下操作:

import type { ElementProps } from "react"

const button = props => <button { ...props } />
type props_t = {
    busy: boolean
} | ElementProps<(typeof button)>

实际上这种接缝起作用,但看起来更像是黑客,因为 首先必须推断出道具。

有人知道更好的方法,或者通常如何做到这一点?

编辑:

经过一些测试后,我得出的结论是上述解决方案不起作用。

0 个答案:

没有答案