Reactjs 刷新标签信息

Reactjs 刷新标签信息,reactjs,axios,Reactjs,Axios,有一些问题,小pokedex,在选择了页面上的卡片名称后,我需要用卡片重新装入容器,你能帮我吗 要获取所选项目,请使用onSelect handleSelect = (e) => { this.setState({value:e}) } <DropdownButton variant="danger" alignRight id="dropdown-menu-align

有一些问题,小pokedex,在选择了页面上的卡片名称后,我需要用卡片重新装入容器,你能帮我吗

要获取所选项目,请使用onSelect

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}`);
  };