reactjs - 样式组件不带 Prop

标签 reactjs styled-components

我正在尝试将 Prop 传递给我的样式组件。我正在使用样式组件 npm 依赖项。

import React, { Component } from 'react';
import styled from 'styled-components';

class WidgetContainer extends Component {

  render() {

    return (
        <Wrapper name='widget-container'>
        </Wrapper> 
    );
  }
}

const mapStateToProps = state => {
  return {
    user: state.user, 
    bannerStatus: true
  };
};

export default withRouter(connect(mapStateToProps)(WidgetContainer));

const Wrapper = styled.div`
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: 100vh;
  margin: auto;
  align-items: center; 
  justify-content: flex-start;
  background: -webkit-linear-gradient(top, rgba(162, 209, 234, 1) 0%, rgba(56, 83, 132, 1) 100%);
  padding-top: ${(props) => { 
    console.log(props.bannerStatus)
    console.log('DATA')
    return props.user ? '160px' : '126px'}};
  overflow-y: auto;
  padding-bottom: 40px;
  @media(max-width: 768px) {
    padding-top: 126px;
    padding-bottom: 5px;
  }
`;

您可以看到的 console.log 返回 undefined。即使该值是硬编码的。结果,三元运算符不起作用。

以下是文档:https://www.styled-components.com/docs/basics#adapting-based-on-props .

最佳答案

您仅在 WidgetContainer 中将状态映射到 Prop .您的 Wrapper组件没有被传递任何 Prop 。

尝试<Wrapper bannerStatus={props.bannerStatus} name='widget-container'></Wrapper><Wrapper user={props.user} bannerStatus={props.bannerStatus} name='widget-container'></Wrapper> .

关于reactjs - 样式组件不带 Prop ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51145692/

相关文章:

http - 使用 go net/http mux 提供单页应用程序

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

javascript - 如何在 react 样式组件中设置子组件的样式

node.js - 有没有办法从 React UI 启动 Mocha 测试?

javascript - ReactJS 使用 getElementById 与库集成

css - 容器问题 - React 和样式化组件

javascript - 如何在 React styled-components 中禁用 styled.button?

reactjs - 警告 : Received `false` for a non-boolean attribute. 如何为自定义 bool 属性传递 bool 值?

javascript - 在哪里可以找到 Material UI 中 Select 的所有 MenuProps 属性

javascript - 如何跨多个页面获取数据?