【发布时间】:2016-04-28 05:25:22
【问题描述】:
在 React 中的 onclick 事件上(不要认为 React 会导致问题,我认为这是我处理对象和数组的方式),我正在尝试获取本地存储变量并推送元素(键)到它,但是它抛出错误 'Uncaught TypeError: Cannot read property 'ids' of null.'
代码如下:
import React from 'react';
import Images from './images';
export default React.createClass({
getInitialState() {
// If doesn't exist, create empty instance
let selectedImages = localStorage.getItem('selectedImages') ? localStorage.getItem('selectedImages') : { ids : [] };
return selectedImages;
},
selectImage(key) {
// get localstorage
let selectedImages = localStorage.getItem('selectedImages');
// Create instance of ids array and push key
let selectedImagesArray = selectedImages.ids.push(key);
// set .ids as selectedImagesArray
selectedImages.ids = selectedImagesArray;
// Set new local storage
localStorage.setItem('selectedImages', selectedImages);
},
render() {
let selectedImages = localStorage.getItem('selectedImages');
return (
<Images items={feedData.items}
selected={selectedImages}
selectImage={this.selectImage} />
)
}
});
【问题讨论】:
-
看起来
localStorage.getItem('selectedImages');正在返回null所以当然ids不能从null访问。另外,您知道push返回数组长度对吗?不是实际的数组。 -
localStorage只能保存字符串.. 你必须 JSON 序列化
标签: javascript reactjs