Reactjs 使用样式化组件时出现PropTypes错误
在React应用程序(使用create-React-app创建)中使用样式化组件时遇到了一些问题,在该应用程序中,我还使用了材质ui 我对样式化组件很在行,所以我试图根据另一个材质ui组件,在样式化组件中设置材质ui组件的样式。为了澄清我试图做的事情,下面是代码:Reactjs 使用样式化组件时出现PropTypes错误,reactjs,material-ui,styled-components,react-proptypes,Reactjs,Material Ui,Styled Components,React Proptypes,在React应用程序(使用create-React-app创建)中使用样式化组件时遇到了一些问题,在该应用程序中,我还使用了材质ui 我对样式化组件很在行,所以我试图根据另一个材质ui组件,在样式化组件中设置材质ui组件的样式。为了澄清我试图做的事情,下面是代码: const StyledContainer = styled(Container)` background-color: ${props=>props.theme.defaultBackground}
const StyledContainer = styled(Container)`
background-color: ${props=>props.theme.defaultBackground};
${FormControl} {
width:100%;
}
`;
其中Container和FormControl确实是重要的ui组件
现在我知道我不应该在父母身上塑造孩子,但正如我所说,我只是在练习
当我这样做并使用StyleContainer时,我会得到一个PropType错误:
Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at ...
这是堆栈跟踪:
checkType
node_modules/prop-types/factoryWithTypeCheckers.js:181
flatten
http://localhost:3000/static/js/0.chunk.js:226001:21
ComponentStyle.generateAndInjectStyles
http://localhost:3000/static/js/0.chunk.js:226243:27
useInjectedStyle
http://localhost:3000/static/js/0.chunk.js:226460:120
useStyledComponentImpl
http://localhost:3000/static/js/0.chunk.js:226488:28
Styled(WithStyles(ForwardRef(Container)))
http://localhost:3000/static/js/0.chunk.js:226555:12
renderWithHooks
node_modules/react-dom/cjs/react-dom.development.js:14803
updateForwardRef
node_modules/react-dom/cjs/react-dom.development.js:16816
beginWork
node_modules/react-dom/cjs/react-dom.development.js:18645
HTMLUnknownElement.callCallback
node_modules/react-dom/cjs/react-dom.development.js:188
invokeGuardedCallbackDev
node_modules/react-dom/cjs/react-dom.development.js:237
invokeGuardedCallback
node_modules/react-dom/cjs/react-dom.development.js:292
beginWork$1
node_modules/react-dom/cjs/react-dom.development.js:23203
performUnitOfWork
node_modules/react-dom/cjs/react-dom.development.js:22154
workLoopSync
node_modules/react-dom/cjs/react-dom.development.js:22130
performSyncWorkOnRoot
node_modules/react-dom/cjs/react-dom.development.js:21756
scheduleUpdateOnFiber
node_modules/react-dom/cjs/react-dom.development.js:21188
updateContainer
node_modules/react-dom/cjs/react-dom.development.js:24373
(anonymous function)
node_modules/react-dom/cjs/react-dom.development.js:24758
unbatchedUpdates
node_modules/react-dom/cjs/react-dom.development.js:21903
legacyRenderSubtreeIntoContainer
node_modules/react-dom/cjs/react-dom.development.js:24757
render
node_modules/react-dom/cjs/react-dom.development.js:24840
你能帮我弄明白吗
谢谢 如果引用的组件是样式化组件,则只能引用另一个组件中的组件。从: 此行为仅在样式化组件的上下文中受支持:在以下示例中尝试装载B将失败,因为组件A是React.component的实例,而不是样式化组件 引发错误-无法将类作为函数调用-是因为样式化组件试图将该组件作为插值函数调用 但是,在styled()工厂中包装A使其符合插值条件——只需确保包装的组件传递类名即可 即:
const StyledFormControl = styled(FormControl);
const StyledContainer = styled(Container)`
background-color: ${props=>props.theme.defaultBackground};
${StyledFormControl} {
width:100%;
}
`;
如果引用的组件是样式化组件,则只能引用另一个组件中的组件。从: 此行为仅在样式化组件的上下文中受支持:在以下示例中尝试装载B将失败,因为组件A是React.component的实例,而不是样式化组件 引发错误-无法将类作为函数调用-是因为样式化组件试图将该组件作为插值函数调用 但是,在styled()工厂中包装A使其符合插值条件——只需确保包装的组件传递类名即可 即:
const StyledFormControl = styled(FormControl);
const StyledContainer = styled(Container)`
background-color: ${props=>props.theme.defaultBackground};
${StyledFormControl} {
width:100%;
}
`;
我明白了,我会测试它,然后带着结果回来。。。。谢谢我明白了,我会测试它,然后带着结果回来。。。。谢谢