我知道有很多类似的帖子,但似乎没有一个与这篇相似。
使用react redux来使用mapStateToProps。
在我的App.js中,我使用import Score from './components/Score';
来导入组件。
该组件位于名为Score的文件夹中,其中包含index.js
和Score.js
。在Score.js
内部,我有:
const Score = ({team_score}) => (
<>
<p>{ team_score }</p>
</>
);
export default Score;
在我的index.js
中,我有:
import { connect } from "react-redux";
import Score from "./Score";
let mapStateToProps = (state) => {
return {
team_score: state.team_score,
};
};
connect(mapStateToProps)(Score)
但我得到了错误:
./src/App.js
Attempted import error: './components/Score' does not contain a default export (imported as 'Score').
我已经检查了三次,文件路径是正确的。我不知道为什么会出现这个错误。
我认为您的问题是这个文件夹中有index.js
文件。
import Score from './components/Score'
这一行将尝试从components/Score/index.js
文件中导入任何内容,而不会从中导出任何内容。
你应该做如下的事情:
import { connect } from "react-redux";
import Score from "./Score";
let mapStateToProps = (state) => {
return {
team_score: state.team_score,
};
};
export default connect(mapStateToProps)(Score)
两种解决方案:
- 从
Score
文件夹内的index.js
文件导出Score
。(从Score
文件导入后( - 删除
index.js
并在App.js
中使用import Score from './components/Score/Score';
如果您只从一个模块返回一个值,则1
是组织得更好的方法。
错误原因:您正在从Score
文件夹导入值。从文件夹导入值时,该文件夹中的index.js
将返回该值。但这里index.js
没有导出任何值。因此,从index.js
导出值(解决方案1(或从Score
文件夹(解决方案2(内的Score
文件导入值