【问题标题】:React could not export file from directory/index.js instead looking for directory.jsReact 无法从 directory/index.js 导出文件,而是寻找 directory.js
【发布时间】:2018-04-15 19:24:26
【问题描述】:

我正在开发基本的反应应用程序并关注此github react respository

下面是项目目录中的文件夹结构(/opt/rqt/

src/
├── App.css
├── actions.js
├── components
│   ├── App.js
│   ├── Footer.js
│   ├── Link.js
│   ├── Todo.js
│   └── TodoList.js
├── containers
│   ├── AddTodo.js
│   ├── FilterLink.js
│   └── VisibleTodoList.js
├── index.js
├── logo.svg
├── reducers
│   ├── index.js
│   ├── todos.js
│   └── visibilityFilter.js
└── registerServiceWorker.js

/src/index.js

import React from 'react'
import ReactDOM from 'react-dom'
import { createStore } from 'redux'
import { Provider } from 'react-redux'
import App from './components/App'
import reducer from './reducers'
// import todoApp from './reducers' // trial 2
import './App.css'
import registerServiceWorker from './registerServiceWorker';

registerServiceWorker();

const store = createStore(reducer);
// const store = createStore(todoApp); // trial 2

ReactDOM.render(
  <Provider store={store}>
    <App />
  </Provider>,
  document.getElementById('root')
);

/src/reducers/index.js

import { combineReducers } from 'redux'
import todos from './todos'
import visibilityFilter from './visibilityFilter'
const todoApp = combineReducers({
    todos,
    visibilityFilter
});

export default todoApp

但是当运行 npm start 时,它会在浏览器中出现以下错误

编译失败 ./src/reducers.js 模块构建失败:错误: ENOENT:没有这样的文件或目录,打开'/opt/rqt/src/reducers.js' 在错误(本机)

为什么只响应查找文件名 reducers.js 而不是查找 reducers/index.js

还尝试附加./reducers/,但不起作用

这里有什么问题?

【问题讨论】:

  • 你试过了吗:从'./reducers/index.js'导入reducer
  • 是的。但它给出了不同的错误 Error: Reducer "todos" 在初始化期间返回未定义。如果传递给 reducer 的状态未定义,则必须显式返回初始状态。初始状态可能不是未定义的。如果您不想为此减速器设置值,可以使用 null 而不是 undefined。 我知道它现在指向正确的文件,但我的查询是为什么它没有自动导航?跨度>
  • 我记不太清了。这是我的package.json
  • 有问题的树结构在 src 文件夹中
  • 现在在将/ 附加为import reducer from ./reducers/ 时工作正常。

标签: reactjs react-native


【解决方案1】:

我在开始使用 React 时遇到了类似的问题。显然这是由 React DOM 中的错误引起的。有一个类似的Github issue here

我所做的是终止进程并重新安装依赖项 (npm install)

然后,它与代码一起工作:

/src/reducers/index.js

export default combineReducers({
    // Some Code Here
})

然后,您可以轻松地将其导入到 App.jsindex.js 中:

import rootReducer from "../reducers"

因此,您可以将rootReducer 替换为您喜欢的任何名称。

【讨论】:

    猜你喜欢
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    • 1970-01-01
    • 2022-01-18
    • 2021-12-27
    相关资源
    最近更新 更多