【发布时间】:2021-07-02 17:52:12
【问题描述】:
我已经尝试了几个小时来解决这个问题,我相信答案很简单。当一个项目被点击时,它最终会为我的待办事项列表创建一个过滤器。我正在努力做的是应用条件样式,以便“活动”项目的字体颜色为蓝色。
我已将status 作为道具包含在内,但我似乎无法在样式组件中使用它以及道具。
来自我的 App.js:
import { useState } from 'react'
function App() {
const [ status, setStatus ] = useState("all")
return (
<Filter status={status} setStatus={setStatus}/>
)
}
过滤器.js
const Container = styled.div`
display: flex;
justify-content: center;
`
const Item = styled.p`
color: red;
// I'm trying to do something like this..
${(status, props) => {
if (status === props.id) {
return `
color: blue;
`
}
}}
`
export const Filter = ({ setStatus, status }) => {
const statusHandler = (e) => {
if (e.target.id) {
setStatus(e.target.id)
}
}
return (
<div>
<Container onClick={statusHandler}>
<Item id="all">All</Item>
<Item id="active">Active</Item>
<Item id="completed">Completed</Item>
</Container>
</div>
)
}
【问题讨论】:
-
props.id来自哪里?我看到状态为status={status},但没有看到 ID。