【发布时间】:2021-10-22 21:32:49
【问题描述】:
我目前正在学习如何访问 API 数据并使用 React 构建了一个应用程序,该应用程序会生成随机的辛普森一家报价。
我想构建一个重置函数,实际上,当单击按钮时,它会从 API 重新加载数据,但我无法让它工作(我不断收到“无法访问属性”重新加载时出现“地图”错误)。
我已经尝试了很多不同的代码排列方式,但似乎都无法做到正确。请问有什么想法吗?
import axios from 'axios'
import CharacterCard from './CharacterCard'
import './CharacterList.css'
const CharacterList = () => {
const [characters, setCharacters] = useState([])
useEffect(() => {
async function getCharactersFromApi() {
const response = await axios.get(
'https://thesimpsonsquoteapi.glitch.me/quotes?count=100'
)
setCharacters(response.data)
}
getCharactersFromApi()
}, [])
const reset = () => {
setCharacters('')
}
return (
<>
<div className='CharacterList'>
{characters.map((character) => (
<CharacterCard {...character} />
))}
</div>
<button onClick={reset}>New Quotes?</button>
</>
)
}
export default CharacterList```
【问题讨论】:
-
原始状态是一个数组,所以重置回那个,即
setCharacters([])而不是setCharacters('')。字符串没有.map属性。投票结束为“不可复制或由错字引起”。干杯。