Javascript TypeError:无法读取属性';总结果';空值(本地存储)
我目前第一次尝试在我的项目中实现localStorage,我已经掌握了其中的大部分内容,但是当我的项目首次在浏览器中加载并且localStorage为空时,我得到了:Javascript TypeError:无法读取属性';总结果';空值(本地存储),javascript,local-storage,Javascript,Local Storage,我目前第一次尝试在我的项目中实现localStorage,我已经掌握了其中的大部分内容,但是当我的项目首次在浏览器中加载并且localStorage为空时,我得到了: TypeError: Cannot read property 'totalresults' of null (localStorage) 我知道这是因为项目试图从本地存储读取数据并输出到项目中,如何避免这种情况 我的代码 export default class QuizPage extends Component {
TypeError: Cannot read property 'totalresults' of null (localStorage)
我知道这是因为项目试图从本地存储读取数据并输出到项目中,如何避免这种情况
我的代码
export default class QuizPage extends Component {
state = {
results: 0,
currentCourse:null,
totalResults: "",
percentage: "",
passed: "",
answered: 0,
disabled: true,
courses: []
}
componentDidMount(){
// Read results from localStorage
const courseResults = JSON.parse(localStorage.getItem(this.props.match.params.course))
this.setState({
currentCourse: courseID,
totalResults: courseResults.totalresults,
results: courseResults.results,
passed: courseResults.passed.toLowerCase()
})
);
componentDidUpdate(prevProps) {
// Save current results to localStorage
const course = {
result: this.state.results,
passed: this.state.passed,
totalresults: this.state.totalResults,
coursename: this.state.courseName
}
localStorage.setItem(this.props.match.params.course, JSON.stringify(course))
}
第一次,如果本地存储中没有任何内容
const courseResults = JSON.parse(localStorage.getItem(this.props.match.params.course))
将为空
因此,在使用courseResults
之前,请确保它是真实值:
componentDidMount() {
const courseResults = JSON.parse(localStorage.getItem(this.props.match.params.course))
if (courseResults) {
this.setState({
currentCourse: courseID,
totalResults: courseResults.totalresults,
results: courseResults.results,
passed: courseResults.passed.toLowerCase()
})
}
};