Reactjs 刷新标签信息
有一些问题,小pokedex,在选择了页面上的卡片名称后,我需要用卡片重新装入容器,你能帮我吗 要获取所选项目,请使用onSelectReactjs 刷新标签信息,reactjs,axios,Reactjs,Axios,有一些问题,小pokedex,在选择了页面上的卡片名称后,我需要用卡片重新装入容器,你能帮我吗 要获取所选项目,请使用onSelect handleSelect = (e) => { this.setState({value:e}) } <DropdownButton variant="danger" alignRight id="dropdown-menu-align
handleSelect = (e) => {
this.setState({value:e})
}
<DropdownButton
variant="danger"
alignRight
id="dropdown-menu-align-right"
onSelect={this.handleSelect}>
我不知道,但在deop down选择项目后,没有任何变化,你能帮我吗问题是你试图在状态中存储道具,并使用useEffect监听状态变化。因此,React无法正确更新组件。页面更改时,currPage状态不会更改。你应该避免这样做,因为这很危险 工作示例:
const Component = ({pages}) => {
const [pokemonList, setPokemonList] = useState([]);
useEffect( () => {
fetch("/api/pokemons/" + pages )
.then( res => res.json() )
.then( data => setPokemonList(data.pokemonList ))
.catch( err => console.log("handle errors") )
})
return <div>{ pokemonList.map( pokemon => <div>{ pokemon.name }</div>) }</div>
}
const组件=({pages})=>{
const[pokemonList,setPokemonList]=useState([]);
useffect(()=>{
获取(“/api/pokemons/”+页面)
.then(res=>res.json())
.then(data=>setPokemonList(data.pokemonList))
.catch(err=>console.log(“处理错误”))
})
返回{pokemonList.map(pokemon=>{pokemon.name}}
}
找到问题,我尝试只更改值,但我应该更改链接,所以答案是:
const handleChange = (e) => {
setCurrPage(`https://pokeapi.co/api/v2/pokemon?offset=${pageNum}&limit=${e}`);
};
你确定DropdownButton上存在onSelect属性吗?@TomaszKisiel我试图用console.log()来实现它,所以在状态中我有正确的值,像这样重新创建它
const[value,setValue]=useState();const handleSelect=(e)=>{setValue(e);}
我是react新手,风格像两个漏洞,所以你能解释一下我应该如何更改代码并按你的代码段吗。我正要回答你的老问题——“如何将数据从一个组件传递到另一个组件”。如果你还没有解决这个问题,请告诉我。这个问题令人困惑,但却是一个有效的问题:)
const Component = ({pages}) => {
const [pokemonList, setPokemonList] = useState([]);
useEffect( () => {
fetch("/api/pokemons/" + pages )
.then( res => res.json() )
.then( data => setPokemonList(data.pokemonList ))
.catch( err => console.log("handle errors") )
})
return <div>{ pokemonList.map( pokemon => <div>{ pokemon.name }</div>) }</div>
}
const handleChange = (e) => {
setCurrPage(`https://pokeapi.co/api/v2/pokemon?offset=${pageNum}&limit=${e}`);
};