【发布时间】:2019-07-20 12:38:30
【问题描述】:
如何为Button 组件(如下)添加打字稿类型,以便打字稿知道increment 函数已被Counter HOC 注入?
我知道渲染道具模式和钩子。我正在寻找一种方法来键入子组件,这些子组件通过cloneElement 接收父组件的道具。
我感觉它与条件类型有关,但不知道如何应用它。这甚至可能吗?
import React from 'react';
const Button = ({ increment }) => (
<button onClick={increment}>
increment
</button>
);
const Counter = ({ children }) => {
const [count, setCount] = React.useState(0);
const increment = () => setCount(count + 1)
return (
<div>
count: {count}
{React.cloneElement(children, { increment })}
</div>
);
}
const App = () => (
<Counter>
<Button>
increment
</Button>
</Counter>
);
ReactDOM.render(<App />, document.getElementById('root'));
【问题讨论】:
-
尝试:{增量}:任何{孩子}:任何
标签: reactjs typescript