Я создаю приложение TODO с Reactjs, в моей папке components
у меня есть класс TaskList с этим кодом для итерации по задачам:
import React, { Component } from 'react';
import {connect} from 'react-redux';
class TaskList extends Component {
render(){
return(
<table>
<thead>
<tr>
<th>Tasks</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
{this.props.tasks.map((task,index) => <Task key = {index} task = {task} />)}
</tbody>
</table>
);
}
}
function MapStateToProps(state){
return{
tasks:state.tasks
}
}
export default connect (MapStateToProps)(TaskList);
Также в папке компонентов у меня есть класс Task, который используется в моем классе TaskList:
Задача:
import React, {Component} from 'react';
import {connect} from 'react-redux';
import {bindActionCreators} from 'redux';
import {DeleteTask} from '../../redux/actions';
class Task extends Component {
render(){
return(
<tr>
<td>
{this.props.task}
</td>
<td>
<button onClick = {() => this.props.DeleteTask(this.props.id)}>Delete</button>
</td>
</tr>
);
}
}
function MapDispatchToProps(dispatch){
return bindActionCreators({DeleteTask},dispatch);
}
export default connect (() => {return {};},MapDispatchToProps)(Task);
Моя проблема здесь в том, что у меня возникает ошибка. Задача не определена, потому что я не импортирую задачу в список задач. В TaskList я уже пробовал:
import Task from './components/task';
import Task from 'task'; //as it's on the same directory
import Task from './task';
И ничего не работает. Есть идеи по этому поводу?
Положите решение на ответ и примите его, пожалуйста. Для дальнейшего использования импорт записывается как import Thing from "module/path"
, где Thing должен соответствовать оператору export default Thing
в модуле.
У меня также он работал с import { Task} from '.';
.
Сам решил ошибку, импорт должен быть
Import Task from '../task'
Я знаю, что OP решен для OP, но у меня это не сработало. Вот что мне пришлось сделать:
import Task from '../components/task'
После небольшого исследования я обнаружил, что дерево проекта начинается с корня проекта, поэтому имена относительных путей необходимо отследить от текущего местоположения файла, а затем пройти вверх (../
) и вниз по дереву (subdirName/
) до импортированного файла, если вы хотите указать относительный путь. Также можно указать абсолютный путь, например:
import Task from 'C:/Users/devusr1/source/repos/React/hello-world/src/components/task.js'
У меня работали как относительные, так и абсолютные пути (я использую nodejs.)
Что не вышло:
.
./
../components
./src/components/task
Я решил ошибку Сам, импорт должен быть Импортировать задачу из "../task"