reactjs - 将自定义类/样式传递给 Gatsby (React) 中的样式化组件
问题描述
我为我的 gatsby 项目创建了以下样式组件。
import React from "react"
import styled, { css } from 'styled-components'
const Button = styled.div`
background-color: #4E58F5;
width: 200px;
padding: 20px;
margin-right: 30px;
margin-top: 30px;
border-radius: 30px;
color: #FFFFFF;
transition: background-color 0.25s ease;
${props => props.primary && css`
background-color: #FFF;
color: red;
`}
`;
export default props => (
<Button>{props.buttonText}</Button>
)
我没有发现文档中的示例足够清晰或一致,无法理解我应该如何将“主要”选项传递给我的组件。
我正在尝试在我的index.js
页面上执行以下操作。Button 呈现,但主词没有效果。我在这里想念什么?
<Button primary buttonText="Submit" />
解决方案
您正在导出的组件无法识别该primary
属性,因此无法将其传递给 Button 元素。您可以通过导出样式组件本身或将无法识别的道具传递给按钮来解决此问题。
const Button = styled.div`
[...]
`;
export default Button;
或者
export default ({buttonText, ...props})=>(
<Button {...props}>{buttonText}</Button>
);
推荐阅读
- c++ - 如何计算两个负整数之间的总和c ++
- python - 将 JSON 文档展平为单行
- javascript - 当前一个输入元素达到特定大小时,如何将焦点移动到另一个输入元素?
- acumatica - 如何自定义发布现金交易批量发布屏幕
- reactjs - 如何根据我的道具的布尔值停止执行我的承诺?
- ios - 使用自定义标志构建 Carthage 依赖项
- javascript - React-native:当输入有空文本时,计算返回 NaN
- javascript - 如何为 js 库中触发的事件传递抑制警告?
- css - CSS 改变每个光标
- video - 如何连接具有不同属性的ffmpeg中的视频?