nob*_*are 4 javascript typescript reactjs
我正在迁移我的 React 文件.tsx并遇到了这个问题。
页脚.tsx
const Footer = ({ children, inModal }) => (
<footer className={'(inModal ? " in-modal" : "") }>
<div>
{children}
</div>
</footer>
);
export default Footer;
Run Code Online (Sandbox Code Playgroud)
父组件.tsx
import Footer from 'path/to/Footer';
export class ParentComponent extends React.Component<{ showSomething: (() => void) }> {
render() {
return (
<Footer>
<Button onClick={() => this.props.showSomething()}>Add</Button>
</Footer>
);
}
}
Run Code Online (Sandbox Code Playgroud)
<Footer>错误标记下方有一个红色下划线:
[ts] 输入 '{children: Element; }' 不可分配给类型 'IntrinsicAttributes & { children: any; inModal: 任何; }'。类型'{孩子:元素; }' 不可分配给类型 '{ children: any; inModal: 任何; }'。类型“{children: Element;”中缺少属性“inModal” }'。
我不太确定如何破译这意味着什么。任何帮助将不胜感激。
该错误表明该Footer组件需要inModal传递给它一个 prop 。要解决此问题,您可以:
给它一个默认值:
const Footer = ({ children, inModal = false }) => ...
Run Code Online (Sandbox Code Playgroud)
告诉打字稿它是可选的:
const Footer = ({ children, inModal }: {children: any, inModal?: boolean}) => ...
Run Code Online (Sandbox Code Playgroud)
或者在使用页脚时明确提供该道具:
<Footer inModal={false}> ... </Footer>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11718 次 |
| 最近记录: |