gpt4 book ai didi

javascript - 测试期间未为子样式组件提供正确的主题

转载 作者:行者123 更新时间:2023-11-30 13:55:13 26 4
gpt4 key购买 nike

我正在尝试写一个 mount(<MyComponent />)但我遇到了 styled-components 的问题由 MyComponent 呈现

子组件

const Layout = styled.View`
background-color: ${({ theme }) => theme.background.main};
`

测试组件

const MyComponent = () => (
<Modal visible>
<Layout>
...
</Layout>
</Modal>
)

我的测试

const theme = {
background: {
main: '#fff',
},
}

it ('should mount', () => {
mount(
<ThemeProvider theme={theme}>
<MyComponent />
</ThemeProvider>
)
})

当我运行这个测试时,我得到一个错误 Cannot read property 'main' of undefined

我试图通过控制台记录 theme来自 Layout 的 Prop 组件,它确认提供的主题 Prop 是一个空对象,而不是来自主题提供者的主题。有什么办法可以mount使用提供的主题?

我也尝试过使用组件包装器,但结果保持不变

mount(<MyComponent />, {
wrappingComponent: ThemeProvider,
wrappingComponentProps: {
theme,
},
})

软件包版本:styled-components是 4.3.2,enzyme3.10.0

最佳答案

您的代码有一点错误。查看测试中的 theme 对象。

它具有属性 backgroundColor 但在您的代码中您使用属性 theme.background

关于javascript - 测试期间未为子样式组件提供正确的主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57429491/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com