我正在尝试将组件上的方法传递给子代...因此,Account
有一个子代PasswordChange
。我想从PasswordChange
传递useState
和Account
fn来切换布尔值以显示/隐藏模式。
但是,出现此打字稿错误:
TypeScript错误 /用户/sb/git/fl-app/src/components/PasswordChange/index.tsx(124,29): 类型为'({firebase,closeClick,name}:PCProps&P)=>的参数 元素”不可分配给“ ComponentType <{ firebase:应用程式; }>'。输入'({firebase,closeClick,name}:PCProps& P)=>“元素”不可分配给“ FunctionComponent <{ firebase:应用程式; }>'。 参数'__0'和'props'的类型不兼容。 输入'PropsWithChildren <{firebase:App; }>'不可分配给'PCProps&P'类型。 输入'PropsWithChildren <{firebase:App; }>'缺少类型'P'中的以下属性:closeClick,名称为TS2345
// Account
const [isPasswordChangeVisible, setIsPasswordChangeVisible] = React.useState(
false,
)
...
{isPasswordChangeVisible && (
<PasswordChange
closeClick={() => setIsPasswordChangeVisible(false)}
name="Terrence McBigglesWorth"
/>
)}
PasswordChange包裹在一个称为withFirebase
的HOC中,该HOC提供了火力,并传递了所有道具:
// with firebase
interface P {
closeClick?: () => void
name?: string
}
export const withFirebase = (
Component: React.ComponentType<{ firebase: firebase.app.App }>,
) => (props: P) => (
<FirebaseContext.Consumer>
{firebase => <Component {...props} firebase={firebase} />}
</FirebaseContext.Consumer>
)
这是整个PasswordChange组件:https://pastebin.com/HF3Hys4z
有什么想法我要去哪里吗?提前非常感谢