Reactjs onChange不更新

Reactjs onChange不更新,reactjs,axios,Reactjs,Axios,在过去的几个小时里,我一直在做这个项目,我非常确定这最后一个小时将是我的最后一个小时。没有出现错误。我的想法是,当我从下拉列表中选择英雄时,页面将根据我的选择进行更新。我可能有一些我没有意识到的东西没有开火 import React, {useEffect, useState} from 'react' import axios from 'axios' require("regenerator-runtime/runtime"); const App = () => { con

在过去的几个小时里,我一直在做这个项目,我非常确定这最后一个小时将是我的最后一个小时。没有出现错误。我的想法是,当我从下拉列表中选择英雄时,页面将根据我的选择进行更新。我可能有一些我没有意识到的东西没有开火

import React, {useEffect, useState} from 'react'
import axios from 'axios'
require("regenerator-runtime/runtime");

const App = () => {
    const [hero, selectedHero] = useState(
        'Select a Hero'
    );
    const handleChange = event => selectedHero(event.target.value);
    return(
        <HeroSelect heroSelect={hero} onChangeHeadline={handleChange} />
    );

};
const HeroSelect = ({heroSelect, onChangeHeadline}) => {
    const [data, setData] = useState({heroes: []});
    useEffect(() => {
        const fetchData = async () => {
            const result = await axios(
                'https://api.opendota.com/api/heroStats',
            );
            setData({...data, heroes: result.data});
        };
        fetchData();
    }, []);
    return (
        <div>
            <h1>{heroSelect}</h1>
            <select>
                {data.heroes.map(item => (
                    <option key={item.id} value={heroSelect} onChange={onChangeHeadline} >
                        {item.localized_name}
                    </option>
                ))}
            </select>
        </div>
    )
};
export default App
import React,{useffect,useState}来自“React”
从“axios”导入axios
要求(“再生器运行时/运行时”);
常量应用=()=>{
const[hero,selectedHero]=使用状态(
“选择英雄”
);
const handleChange=event=>selectedHero(event.target.value);
返回(
);
};
常量HeroSelect=({HeroSelect,onchangewheadline})=>{
const[data,setData]=useState({heroes:[]});
useffect(()=>{
const fetchData=async()=>{
常量结果=等待axios(
'https://api.opendota.com/api/heroStats',
);
setData({…数据,英雄:result.data});
};
fetchData();
}, []);
返回(
{heroSelect}
{data.heroes.map(项=>(
{item.localized_name}
))}
)
};
导出默认应用程序

您应该在
select
标记本身上触发
onChange
事件

<select onChange={onChangeHeadline} >
.....
.....
</select>

.....
.....

您应该在
select
标记本身上触发
onChange
事件

<select onChange={onChangeHeadline} >
.....
.....
</select>

.....
.....

上定义您的
onChange={onChangeHeadline}
选择
标记非
选项
标记

         <select onChange={onChangeHeadline}>
           {data.heroes.map(item => (
            <option key={item.id} value={item.localized_name}>
             {item.localized_name}
            </option>
            ))}
         </select>

{data.heroes.map(项=>(
{item.localized_name}
))}

上定义您的
onChange={onChangeHeadline}
选择
标记非
选项
标记

         <select onChange={onChangeHeadline}>
           {data.heroes.map(item => (
            <option key={item.id} value={item.localized_name}>
             {item.localized_name}
            </option>
            ))}
         </select>

{data.heroes.map(项=>(
{item.localized_name}
))}

我想您没有在select上声明onChange

我想你没有在select上声明onChange

使用此方法:

<select id="lang" onChange={this.change} value={this.state.value}>
<option value="select">Select</option>
<option value="Java">Java</option>
<option value="C++">C++</option>
</select>

挑选
JAVA
C++

使用此方法:

<select id="lang" onChange={this.change} value={this.state.value}>
<option value="select">Select</option>
<option value="Java">Java</option>
<option value="C++">C++</option>
</select>

挑选
JAVA
C++

你是一个传奇人物!哈哈…不,兄弟…我不是,但你可以投票接受答案。快乐编码:)你是一个传奇!哈哈…不,兄弟…我不是,但你可以投票接受答案。快乐编码:)@4156没有朋友这只是个错误。如果答案对您有帮助,请接受/投票。@4156没有朋友,这只是个错误。如果答案对你有帮助,请接受/投票支持。