Javascript 如何在静态方法中访问对象值?
我正在使用react中的static getDerivedStateFromProps有条件地更新状态 这是示例代码:Javascript 如何在静态方法中访问对象值?,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我正在使用react中的static getDerivedStateFromProps有条件地更新状态 这是示例代码: static getDerivedStateFromProps(nextProps, prevState) { console.log(nextProps, prevState); if (prevState.web_data !== nextProps) { var data = nextProps.data;
static getDerivedStateFromProps(nextProps, prevState) {
console.log(nextProps, prevState);
if (prevState.web_data !== nextProps) {
var data = nextProps.data;
data.sort((a, b) => new Date(b.created) - new Date(a.created));
console.log(data[0]);
// nextProps.getData({data[0].website_id});
return {
web_data: data,
// selected_web_id: data[0].website_id
}
}
else {
return null;
}
}
在上面的代码console.log(数据[0])
中,返回索引0处的数据值,但当我尝试访问数据[0]中的对象值时,它会抛出错误,因为id未定义
数据数组的结构是:
data = [{key:value, website_id...}, {key:value, website_id...}, {key:value, website_id...}, {key:value, website_id...}]
我建议不要使用console.log()来找出错误,而是尝试使用调试器并跟踪每个步骤,以找出未定义错误的原因
根据我之前的说法,道具是空的,这就是你无法访问object属性的原因。不要在黑暗中用
控制台.log
手电筒蹒跚而行,尤其是对于你来说。相反,请使用IDE和/或浏览器中内置的调试器打开指示灯。:-)在.sort
行上放置断点。当应用程序到达断点时,查看数据
。你会发现它并不是你想象的那样。它可能会在以后更改。“它会抛出错误,网站id未定义”请不要解释错误。我想不出这可能会说些什么(如果说website\u id
没有定义,而不是上面的代码,那就没有意义了;它可能会说你不能阅读website\u id
的undefined
或其他类似的东西)。相反,请始终使用“复制和粘贴”将准确的错误复制到(带有报价标记),以便我们准确地了解您正在处理的问题,从而更好地帮助您。