2017-05-09 73 views
0

删除问题以避免响应API未定义问题与petfinder和ReactJS

+0

这意味着'arrOfPets.petfinder'未定义 –

+0

谢谢你。正如你在第一个截图中看到的那样,它显然不是未定义的,这就是我想解决的问题。 – boomer1204

+0

我无法读取屏幕截图:p –

回答

0

不要将arrOfPets包装在大括号中。试试这个:

if (this.props && this.props.petfinder) { 
const arrOfPets = this.props 
const allPets = arrOfPets.petfinder 
} 

如果你想使用解构语法,你的变量将需要匹配对象的属性名称。

const { petfinder } = this.props 

Javascript (ES6) const with curly braces

+0

我想我不明白它是如何工作的,因为petFinder是api return/promise的第一个“节点”? this.props.petFinder不存在我映射到道具的状态是arrOfPets not petfinder?我还是新的,所以如果我错了只是lmk,但它不适合我,它通过一个错误。 同样在你的if语句建议中,当我这样做时,我不能访问arrOfPets或allPets – boomer1204

+0

我并不完全关注你的评论。您的代码示例测试this.props.getPets的存在,然后假定存在this.props.arrOfPets。我认为这就是你遇到麻烦的地方。 –

+0

arrOfPets是我从通过运行“this.props.getPets”从我的redux商店中抓取的状态传递给一个道具的值。 this.props.arrOfPets在通过我的中间件运行后回报承诺数据。唯一一次我遇到问题的时候是我尝试从商店抢来.pets。在此之前的一切都运行良好,游戏机控制良好,所以我抓住了正确的东西,这是搞砸它的。不知道它是我的代码还是api。查看第一个截图,该截图是this.props.arrOfPets.petFinder的console.log。你会看到宠物是那个节点 – boomer1204

0

更深的挖掘后,它似乎有一个与API本身的问题。谢谢您的帮助!!!