【发布时间】:2021-03-03 08:49:25
【问题描述】:
我正在学习 React,我正在尝试创建一个动态的下拉选择。我正在从另一个组件中成功导入从 API 获取的数据。我想从 fetched data 中按 category 填充 select option,它是单个字符串的 array “女人”、“男人”或“孩子”。我想要的是,最初列出所有数据,为 category 字符串提供 3 个 options,并根据 仅列出匹配的 products >onChange 事件。
现在,当我单击 select 时,整个应用程序都会呈现并且看不到错误。
任何帮助将不胜感激
API 数据如下所示:
[
{
categories: [
'women'
],
variants: [
'white',
'black',
'green'
],
sizes: [
38,
39,
40
],
_id: '5f8edf08880a821cb8757d8a',
name: 'Nike Air',
description: 'Tennis court levitating sneaker',
img: 'https://source.unsplash.com/user/erondu/PGTO_A0eLt4',
price: 100,
__v: 1
}
]
类别组件
import React, { useState } from 'react'
const Categories = ({ categories }: any) => {
const [category, setCategory] = useState('')
console.log('category', category)
return (
<>
<select
value={category}
onChange={(e) => setCategory(e.target.value)}
>
<option value="">Select</option>
{categories && categories.map((option: any) => (
<option key={option._id}
value={option.categories}
>
{option.categories}
</option>
))}
</select>
</>
)
}
export default Categories
【问题讨论】:
-
请不要使用
console.log输出。发布实际上可复制/可用的内容。 -
@Yoshi 感谢您的指出。我更新了问题
-
感谢您的更新,但是与之前的 console.log 输出相比,图像如何可复制/可用?如果您希望人们帮助您,请让他们轻松地帮助您。没有人愿意为了让原型运行而输入示例数据。
-
嘿 @ Yoshi 我试图准确地说,但是,是的,你说得对。那么,你能帮我解决这个问题吗?为了更准确和更容易为社区提供帮助,这里缺少什么?
-
一般来说,一个好的阅读是How to create a Minimal, Reproducible Example。然后对于您的问题,将该图像中显示的数据发布为 JSON 或有效的 javascript 数据结构。这样人们就可以复制了。
标签: reactjs