我正在try 呈现用户点击的一些信息.当点击时,用户将看到代码列表,他们只是获得了额外的信息. 让我们从头开始吧. 因此,首先我使用useState Hook来初始化选项. 然后我从外部API获取一些数据,将数据转换为json格式并更新选项.然后,我将每个选项中存储的数据映射到一个选项标记中,并在一个 Select 标记中返回这些选项.然后,我向SELECT标记添加了一个名为handleClick的事件处理程序.然后,我使用Filter获得具体的选项.问题是,当我试图显示信息但它没有显示时.我试着安慰它.记录它,它工作得很好,但当我试图将它显示在列表中时,没有出现任何结果.

以下是我的代码



import { useEffect,useState } from "react"


function Data() {

    //Intializing Options using the useState Hook
    const [options , setOption] = useState([])

    useEffect(() => {

        //Fetching the data
        fetch('https://api.n.exchange/en/api/v1/currency/')

        .then(response => response.json())
        .then(data =>
                setOption(data)
            )
    })

    function handleClick(event) {

        const selectedBase = options.filter(code =>
                code.code === event.target.value
        )
        return(

            <ul>
               {selectedBase.forEach(currency => <li>{currency.name}</li>)}
            </ul>


            )

    }

    return(
        <select onChange={handleClick}>
        <option select="true" hidden={true}>Select an Currency</option>
        {
            options.map(options =>
                <option key={options.code} value={options.code}>{options.code}</option>
            )
        }
        </select>
    )
}



export default Data


推荐答案

最好创建一个状态来存储所选选项

const [optionSelected, setOptionSelected] = useState(0)

然后将句柄更改修改为只设置选中的状态选项,而不返回JSX,如下所示:

function handleClick(){
 const selectedBase = options.filter(code =>
                code.code === event.target.value
        )
 setOptionSelected(selectedBase)
}

在您的组件返回JSX时,没有显示原因,因为您没有在您的 Select 选项之后存储该值,修改如下:

<>
    <select onChange={handleClick} value={optionSelected}>
        <option select="true" hidden={true}>Select an Currency</option>
        {
            options.map(options =>
                <option key={options.code} value={options.code}>{options.code}   
        </option>
            )
        }
   </select>
   <ul>
       //your mapping data from optionSelectedState
   </ul>

</>

Reactjs相关问答推荐

Reaction路由的问题-在Effect使用API调用响应设置状态之前呈现页面

安装后未渲染tailwind

如何使图像zoom 并移动到点击点

更改滑块标记的文本 colored颜色 ./Reaction/MUI 5

当项目开始时,它不会从三元运算符(REACT)加载一些tailwind 类名称

无法找出状态正在被更改的位置

react -无法获取函数的最新参数值

状态改变不会触发重新渲染

如何修复ReferenceError:在构建过程中未定义导航器

React Todo List 应用程序我在实现删除功能时遇到问题

React-router-dom的链接不改变路由(ReactRouter6)

BrowserRouter改变了URL但没有链接到页面

使用 toast 时挂钩调用无效

在 React 中将路径与查询变量匹配

无法读取未定义的react native 的属性参数

如何通过onpress on view in react native flatlist来降低和增加特定视图的高度?

当从数组中删除数据时,UseEffect 不会重新渲染,仅在添加数据时才会重新渲染

将 Material UI 菜单渲染为

使用 React 中的功能组件更改另一个组件的状态

我在使用 Elements of stripe 时使用 React router v6