【发布时间】:2022-01-23 11:16:05
【问题描述】:
现在,我才刚刚开始学习 styled-component。我不知道为什么它没有达到我的预期。 首先,我向 props 传递一个数据(weekendData),我想根据数据更改颜色。如果 data.schedule(weekendData.schedule) 包括("_") 我想将颜色更改为红色,它应该是黑色/蓝色。
- 我的预期
:在weekendData.schedule 中,第六个元素包括“_”,所以它应该是红色的,但它没有改变任何东西。 此外,当我将黑色更改为另一种颜色(如粉红色或黄色)时,颜色仍然是黑色,这意味着默认颜色。我猜样式组件中的颜色没有做任何事情。
这是周末数据
这是我的代码
<WeekendScheduleDate value={weekendData}>
{extractMonthFromWeekendData(0)}/{extractDateFromWeekendData(0)}
</WeekendScheduleDate>
<WeekendScheduleDate value={weekendData}>
{extractMonthFromWeekendData(1)}/{extractDateFromWeekendData(1)}
</WeekendScheduleDate>
<WeekendScheduleDate value={weekendData}>
{extractMonthFromWeekendData(2)}/{extractDateFromWeekendData(2)}
</WeekendScheduleDate>
<WeekendScheduleDate value={weekendData}>
{extractMonthFromWeekendData(3)}/{extractDateFromWeekendData(3)}
</WeekendScheduleDate>
<WeekendScheduleDate value={weekendData}>
{extractMonthFromWeekendData(4)}/{extractDateFromWeekendData(4)}
</WeekendScheduleDate>
<WeekendScheduleDateSat value={weekendData}>
{extractMonthFromWeekendData(5)}/{extractDateFromWeekendData(5)}
</WeekendScheduleDateSat>
<WeekendScheduleDateSun>
{extractMonthFromWeekendData(6)}/{extractDateFromWeekendData(6)}
</WeekendScheduleDateSun>
const WeekendScheduleDate = styled.span`
margin-right: 1%;
font-size: 1.2em;
font-weight: 600;
color: ${props =>
props.weekendData &&
props.weekendData.schedule.map(obj =>
obj.includes("_") ? "red" : "black"
)};
`;
const WeekendScheduleDateSat = styled.span`
margin-right: 1%;
font-size: 1.2em;
font-weight: 600;
color: ${props =>
props.weekendData &&
props.weekendData.schedule.map(obj =>
obj.includes("_") ? "red" : "blue"
)};
`;
const WeekendScheduleDateSun = styled.span`
margin-right: 1%;
font-size: 1.2em;
font-weight: 600;
color: red;
`;
当前结果 : 从 12/20 到 12/25 黑色 我猜是默认颜色。
非常感谢您的帮助!
【问题讨论】: