Reactjs 火花线-收到NaN
试着弄明白。 也就是说,到了应该制作火花线的时候了。但由于某些原因,它不会显示该值。 有什么不对劲吗 JSON: 代码: 类CountMain扩展了React.Component{ 建造师(道具){ 超级(道具); 此.state={ 职位:[] }; } componentDidMount(){ this.fetchPost(); this.timer=setInterval(()=>this.fetchPost(),5000) } 组件将卸载(){ clearInterval(这个计时器); } 异步fetchPost(){ 取('https://example.com/json') 。然后(res=>{ 返回res.json(); }) 。然后(数据=>{ 这是我的国家({ 职位:数据 }); }) .catch(错误=>{ 控制台日志(err); }); } render(){ const playersCount=this.state.post.length==0?:{this.state.post[0].playersCount}; const playersCountToday=this.state.post.length==0?:{this.state.post[0].playersCountToday}; const playersCountAll=this.state.post.length==0?:{this.state.post[0].playersCountAll}; const countDailyChecksAll=this.state.post.length==0?0:this.state.post[0].countDailyChecksAll.join(','); //console.log(countDailyChecksAll); 返回( 试验柱Reactjs 火花线-收到NaN,reactjs,sparklines,Reactjs,Sparklines,试着弄明白。 也就是说,到了应该制作火花线的时候了。但由于某些原因,它不会显示该值。 有什么不对劲吗 JSON: 代码: 类CountMain扩展了React.Component{ 建造师(道具){ 超级(道具); 此.state={ 职位:[] }; } componentDidMount(){ this.fetchPost(); this.timer=setInterval(()=>this.fetchPost(),5000) } 组件将卸载(){ clearInterval(这个计时器);
- //这是一个线路错误
- {playersCountAll}
cy
属性的NaN。如果这是预料之中的,,
将值强制转换为字符串
错误:属性cy:预期长度,“NaN”
react dom.development.js:2323错误:属性点: 预期数字为“6南”
console.log输出: 41125,68,26,41,41,66
我做错了什么?在react中,您应该在state中定义动态变量 状态是一个JavaScript对象,它存储组件的动态数据并确定组件的行为。因为状态是动态的,所以它使组件能够跟踪渲染之间的更改信息,并使其具有动态性和交互性 例如,而不是
const countDailyChecksAll = this.state.post.length === 0 ? 0 :
this.state.post[0].countDailyChecksAll.join(',');
使用类似于:
this.setState({countDailyChecksAll: this.state.data[i].countDailyChecksAll})
在react中,您应该在状态中定义动态变量 状态是一个JavaScript对象,它存储组件的动态数据并确定组件的行为。因为状态是动态的,所以它使组件能够跟踪渲染之间的更改信息,并使其具有动态性和交互性 例如,而不是
const countDailyChecksAll = this.state.post.length === 0 ? 0 :
this.state.post[0].countDailyChecksAll.join(',');
使用类似于:
this.setState({countDailyChecksAll: this.state.data[i].countDailyChecksAll})
数据
应该是一个数字数组。您有一个字符串数组,将其转换为单个逗号分隔的字符串
,然后将其包装成一个数组。那是不对的
// convert to numbers
const countDailyChecksAll = this.state.post[0].countDailyChecksAll.map(parseFloat);
<Sparklines data={countDailyChecksAll} ... >
//转换为数字
const countDailyChecksAll=this.state.post[0].countDailyChecksAll.map(parseFloat);
数据
应该是一个数字数组。您有一个字符串数组,将其转换为单个逗号分隔的字符串
,然后将其包装成一个数组。那是不对的
// convert to numbers
const countDailyChecksAll = this.state.post[0].countDailyChecksAll.map(parseFloat);
<Sparklines data={countDailyChecksAll} ... >
//转换为数字
const countDailyChecksAll=this.state.post[0].countDailyChecksAll.map(parseFloat);
countDailyChecksAll
可能无效。它要么等于0
(一个数字),要么是一个逗号分隔的值字符串。事实上,它可以是两种不同的类型,这似乎是一个错误。将数组数据作为单个字符串传递似乎也不正确。countDailyChecksAll
可能无效。它要么等于0
(一个数字),要么是一个逗号分隔的值字符串。事实上,它可以是两种不同的类型,这似乎是一个错误。将数组数据作为单个字符串传递似乎也不正确。