Javascript TypeError:null不是对象(正在计算';prevState.intervalTimer';)
我的expo应用程序在与prettier发生冲突后停止了。我拉了一个新的分支,禁用了vscode上的任何代码格式化,即使Javascript TypeError:null不是对象(正在计算';prevState.intervalTimer';),javascript,reactjs,react-native,redux,expo,Javascript,Reactjs,React Native,Redux,Expo,我的expo应用程序在与prettier发生冲突后停止了。我拉了一个新的分支,禁用了vscode上的任何代码格式化,即使npm安装现在需要——旧的对等部门来工作,但事情开始一个接一个地得到修复。现在它给出了一个错误代码TypeError:null不是一个对象(评估'prevState.intervalTimer'),我似乎无法理解它抛出此错误的原因 这就是我使用的'prevState.intervalTimer')(在我的主屏幕中) 我的代码中没有其他地方有prevState.intervalT
npm安装
现在需要——旧的对等部门
来工作,但事情开始一个接一个地得到修复。现在它给出了一个错误代码TypeError:null不是一个对象(评估'prevState.intervalTimer')
,我似乎无法理解它抛出此错误的原因
这就是我使用的'prevState.intervalTimer')
(在我的主屏幕中)
我的代码中没有其他地方有prevState.intervalTimer
我的间隔计时器的一部分是:
case TIMER.START_REST_TIMER: {
const { initialTime, exercise } = action.payload;
return {
...state,
initial_rest_time: initialTime,
rest_time: initialTime,
rest_exercise: exercise
}
}
case TIMER.TICK_REST_TIMER: {
return {
...state,
rest_time: state.rest_time - 1
}
}
case TIMER.STOP_REST_TIMER: {
return {
...state,
rest_time: state.initial_rest_time,
initial_rest_time: null,
rest_exercise: null
}
}
default:
return state;
}
};
export default intervalTimer;
我通过MapStateTops
const mapStateToProps = ( state ) => ( {
rest_time: state.intervalTimer.rest_time,
rest_exercise: state.intervalTimer.rest_exercise
} );
所有这些代码都保持不变,我将它们与我的旧代码进行了比较,我不知道为什么会失败,但这是一个向我抛出的错误。它最初是空的,因此您可以使用可选的链接操作符来处理它
if ((prevState?.intervalTimer || {}).rest_time === this.props.rest_time) {
!!this.horizRef.current && this.horizRef.current.scrollTo({ animated: false, x: 0, y: 0 });
}
if ((prevState?.intervalTimer || {}).rest_time === this.props.rest_time) {
!!this.horizRef.current && this.horizRef.current.scrollTo({ animated: false, x: 0, y: 0 });
}