javascript - 在选定的特定项目上设置内联组件的样式
问题描述
我希望能够为我选择的项目创建一些不同的 UI。
我正在为我选择的语句使用钩子,它工作得很好,我只是无法使样式工作。
当前的 UI - 基本引导卡。Wished UI - 选择时周围有边框的引导卡。
我的检测选择的钩子(工作正常)
const [selected, setSelected] = useState(items.one); // default value
到目前为止我试图实现的目标:
<Card
onClick={() => setSelected(items.two)}
style={{
borderColor: selected ? 'black' : "none",
}}
>
</Card>
<Card
onClick={() => setSelected(items.three)}
style={{
borderColor: selected ? 'black' : "none",
}}
>
</Card>
..................
..................
对于每张卡片都是相同的逻辑 - 但它不会检测到选择并且卡片总是有黑色边框。What I tried to do above is when the specific item is selected give it black border, otherwise none.
任何解决方案我怎样才能用这个实现更好的 UI/UX?我不知道为什么它不起作用。
解决方案
每张卡都是相同的逻辑。所以你可以map
用来渲染。我看到你items
是对象,所以首先将项目转换为arrayKey:const itemsKey = Object.keys(items);
下一步:更新渲染
{itemsKey.map((key, index) => (
<Card
key={index}
data={items[key]}
onClick={() => setSelected(key)}
style={{
borderColor: selected === key ? "black" : "none",
}}
/>
))}
推荐阅读
- angular - Angular:运行“ng serve”时,出现错误“webpack: Failed to compile”。
- python - Convert True False in column to Boolean
- c - 在 gdb 中以 ASCII 格式查看寄存器内容
- sql - 带有 Oracle 隐形索引的奇怪执行计划
- python - 如何在 Pygame 中缩放多边形?
- javascript - 如何修复此代码以在打印结果之前等待 MongoDB 调用完成
- php - 如何使用php连接到office 365共享邮箱文件夹
- javascript - React:循环对象以绑定 useState 函数不会更新我的应用程序的状态
- heroku - 尝试将 Rails5 应用程序部署到 heroku 时出现 Uglifier 错误
- python - Tkinter 如何检测文本小部件内容是否太长?