javascript - 呈现错误时,对象作为具有状态的 React 子项无效
问题描述
在带有 React 的 Ionic 中,我收到此错误:
“对象作为 React 子级无效(找到:带有键 {...} 的对象)。如果您要渲染子级集合,请改用数组。”
函数 getTimes 应该返回一个带有键和值的 JSON 对象,例如。{tmp1: '1:05', tmp2: '2:05'} 但我在尝试渲染时遇到错误,尽管在 console.log 中我可以看到结果。
export const getTimes = (date: Date) => {
const API_URL = '...'
return axios({
url: API_URL,
method: 'get'
}).then(response => {
return response.data.data.timings;
})
}
而在我进行渲染的 tsx 文件中
const theTimes = () =>{
const [state, setState] = useState({ isLoading: true, collection: null });
useIonViewWillEnter(()=>{
getTimes(new Date()).then(res=>{
setState({ isLoading: false, collection: res });
})
})
console.log(state.collection);
return <IonCard>{state.collection}</IonCard>
}
解决方案
正如错误所说,state.collection
是一个对象({tmp1: '1:05', tmp2: '2:05'}
)。React 不知道如何处理这个问题,也不知道该怎么做,所以它抛出了一个错误。
这取决于您要渲染的内容,但您可能希望渲染每个单独的对象属性。
例如:
return <IonCard>{state.collection.tmp1} {state.collection.tmp2}</IonCard>
推荐阅读
- spring-rabbit - Spring Boot RabbitMQ 空指针异常错误
- jekyll - 为覆盖整个网站的标签分配一个很棒的字体图标
- python - 满足条件,但程序没有跳出 while 循环
- kotlin - 在kotlin中println之前的双冒号是什么意思
- r - 获取变量以传递给R中的函数(ggplot2)
- javascript - 强制客户端使用未缓存的资源
- php - 根据第一个下拉列表的选择,使用数据库中的下拉列表设置另一个下拉列表的值
- bigcommerce - 如何在 bigcommerce API 3 中获取所有订单
- javascript - 将“react-router”迁移到“react-router-dom”(v4)
- geolocation - Apache 点燃地理空间查询示例