【问题标题】:Passing props in React Typescript using custom hooks使用自定义钩子在 React Typescript 中传递道具
【发布时间】:2020-06-03 21:53:13
【问题描述】:

我制作了一个自定义的useToggler 钩子,我正在尝试将切换道具从它传递给标题中的按钮子项。当我尝试 toggle={toggle} 我得到错误:

类型 '{toggle: () => void;}' 不可分配给类型 'IntrinsicAttributes & { children?: ReactNode; }'。

我怎样才能用 typescript 做到这一点?

import './style/app.css';
import Header from './components/Header';
import SideDrawer from './components/SideDrawer'
import Backdrop from'./components/Backdrop'
import useToggler from "./components/UseToggler";

const App = () => {
    const [show, toggle]=useToggler()

    return (
        <div className="App">
            <Header toggle={toggle} />
            <SideDrawer/>
            <Backdrop/>
            <main style={{marginTop:'56px'}}>
                <p>Page content</p>
            </main>
        </div>
    );
}

export default App;

【问题讨论】:

    标签: reactjs typescript react-hooks


    【解决方案1】:

    您会收到类似的错误,因为您违反了接口类型检查。组件应该有一个强制属性。您可以通过传播要传递的道具来避免此错误:

    <Header {...toggler} />
    

    【讨论】:

    • 谢谢!以及我如何将这个道具传递给
      内的子
    • &lt;Header&gt;&lt;DrawerToggleButton/&gt;&lt;/Header&gt;
    • 我已经这样做了,但是我需要再向下发送道具...但是我不能这样做
    • 那是因为 typescript 事先并不知道{...toggler} 包含toggle。你可以这样做:&lt;DrawerToggleButton {...props}/&gt;
    • 非常感谢,我希望我不会打扰你...现在在 里面我有 Button,我需要使用切换功能放置 onClick 属性...
    猜你喜欢
    • 2021-10-21
    • 1970-01-01
    • 2021-04-01
    • 2020-08-27
    • 2021-09-08
    • 1970-01-01
    • 2021-07-21
    • 1970-01-01
    • 2020-06-13
    相关资源
    最近更新 更多