我的React组件出现以下错误:
Failed to compile.
./src/components/GameInfo.js
Line 13: 'isPlaying' is not defined no-undef
Search for the keywords to learn more about each error.
但是我在同一文件中定义了该状态,这就是整个事情:
import React from 'react';
import { Layer, Stage } from 'react-konva';
import { connect } from 'react-redux';
import Banner from './Banner.js';
import CurrentTetromino from '../containers/CurrentTetromino.js';
import ActiveTetrominos from '../containers/ActiveTetrominos.js';
import gameConstants from '../gameConstants.js';
import style from '../styles/styles.css';
const { fieldHeight, fieldWidth } = gameConstants;
let GameField = ({ isPlaying, isPaused, isGameOver }) => {
if (isPlaying) {
return (
<div style={{display: 'inline'}}>
<div className={style.gameField}>
<Stage width={fieldWidth} height={fieldHeight}>
<Layer>
<CurrentTetromino />
<ActiveTetrominos />
</Layer>
</Stage>
{ isPaused ? <Banner label="PAUSED" color="black" opacity=".5" /> : null}
</div>
{ isGameOver ? <Banner label="GAME OVER" color="red" opacity=".8" /> : null}
</div>
);
}
return null;
};
const mapStateToProps = ({ gameStatus }) => ({
isPlaying: gameStatus !== 'IDLE',
isPaused: gameStatus === 'PAUSED',
isGameOver: gameStatus === 'GAME_OVER',
});
GameField = connect(mapStateToProps)(GameField);
export default GameField;
我想像是导致该错误的错误对于isPaused和isGameOver也将类似地返回。
我不确定为什么它没有在mapStateToProps中获取那些const。不幸的是,使用React,它实际上只能告诉我发生错误的那一行(第13行)。
任何建议将不胜感激。
答案 0 :(得分:1)
这个愚蠢的网站不会让我发表评论,但是我会检查gameStatus在您的mSTP中是否一切正常。与其执行隐式返回,不如将其显式更改并在您的mSTP中console.log gameStatus。或者在那里打一个调试器。那将是我的第一个检查本能。
const mapStateToProps = ({ gameStatus }) => {
console.log(gameStatus);
return {
isPlaying: gameStatus !== 'IDLE',
....
}
}
如果您可以分享所带来的收获,我可能会帮助您更多。否则祝您好运,并希望可以帮助您解决问题。
答案 1 :(得分:0)
以经典编程方式,我打错了“ IsPLaying”而不是“ IsPlaying”。
谢谢您的帮助!