Javascript 如何使用从Redux返回的嵌套数据结构而不会遇到诸如';无法访问未定义的';的属性x;?
我试图使用Redux选择器从Redux存储返回的嵌套数据结构中提取特定数据Javascript 如何使用从Redux返回的嵌套数据结构而不会遇到诸如';无法访问未定义的';的属性x;?,javascript,reactjs,redux,next.js,Javascript,Reactjs,Redux,Next.js,我试图使用Redux选择器从Redux存储返回的嵌套数据结构中提取特定数据 const getContactPhone = state => (state.home.data.blocks[1].contactPhone); 当我的Next.js站点使用getInitialProps加载时,我从API获取这些数据并将其存储在存储中。看起来存储数据出现和消失了——也许这与Next.js和Next redux包装器处理存储创建的方式有关。例如,在任何情况下,我都会收到“无法读取未定义的联系人
const getContactPhone = state => (state.home.data.blocks[1].contactPhone);
当我的Next.js站点使用getInitialProps
加载时,我从API获取这些数据并将其存储在存储中。看起来存储数据出现和消失了——也许这与Next.js和Next redux包装器处理存储创建的方式有关。例如,在任何情况下,我都会收到“无法读取未定义的联系人电话”错误
显然,我可以把支票放进去,比如
const getContactPhone = state => (state && state.home && state.home.data
&& state.home.data.blocks && state.home.data.blocks[1] ? state.home.data.blocks[1].contactPhone : '');
但这看起来既尴尬又丑陋。有没有更好的方法来处理这个问题?有什么图书馆可以帮助我吗
谢谢你给我们提供任何前进的线索 拉姆达有一个功能。将属性的路径作为字符串数组传递。如果该属性存在,则返回其值;否则返回未定义的
console.log(R.path(['a','b','c',0],{a:{b:{c:[1,2]}));//1.
log(R.path(['a','b','c',0],{}));//未定义