Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在静态方法中访问对象值?_Javascript_Reactjs_React Native - Fatal编程技术网

Javascript 如何在静态方法中访问对象值?

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;

我正在使用react中的static getDerivedStateFromProps有条件地更新状态

这是示例代码:

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
或其他类似的东西)。相反,请始终使用“复制和粘贴”将准确的错误复制到(带有报价标记),以便我们准确地了解您正在处理的问题,从而更好地帮助您。