Conversation
|
Выложил на heroku |
|
Пофиксил фокус, Добавил сохранение state в localStorage. |
|
А ты css откуда брал? Сейчас это всё лежит совсем не по компонентам, если брал как и в прошлом задании из npm модулей, то так и стоило оставить |
EAndreyF
left a comment
There was a problem hiding this comment.
В целом не плохо, но слишком большие компоненты, и меняешь пропсы, передаешь мало хендлеров, неявная работа со state
| if (!mainList) { | ||
| mainList = [{todos : []}]; | ||
| state.set(mainList); | ||
| state.save(); |
There was a problem hiding this comment.
сделал бы через chain выглядело бы лучше
| class MainList extends React.Component { | ||
|
|
||
| addTodoList() { | ||
| this.props.data.push({todos:[], completed: false}); |
There was a problem hiding this comment.
Нельзя менять пропсы) Ты можешь менять только state
|
|
||
| addTodoList() { | ||
| this.props.data.push({todos:[], completed: false}); | ||
| this.setState({data: this.props.data}); |
There was a problem hiding this comment.
Зачем ты сетишь стейт, если нигде из него не читаешь? Только для того чтобы вызвался перерендеринг
| completedNumber = 0; | ||
|
|
||
| let todoTemplates, | ||
| calculateTodos = this.calculateTodos.bind(this); |
There was a problem hiding this comment.
обычно такой биндинг делают в конструкторе, а то у тебя при каждом рендеринге будет биндинг
| completedNumber = 0; | ||
|
|
||
| let todoTemplates, | ||
| calculateTodos = this.calculateTodos.bind(this); |
There was a problem hiding this comment.
обычно такой биндинг делают в конструкторе, а то у тебя при каждом рендеринге будет биндинг
|
|
||
| let Todo = require("./Todo").Todo; | ||
|
|
||
| class TodoList extends React.Component { |
There was a problem hiding this comment.
У тебя слишком много намешано в этом компоненте и футер и добавление тудушек и футер с фильтрами. Стоит разбивать гораздо мельче
| <TodoList | ||
| key={index} | ||
| data={item} | ||
| handlers={{ |
There was a problem hiding this comment.
Хорошо что ты передаешь хэндлеры в глубь, но слишком мало) У тебя очень много изменений пропсов
| this.setState({ | ||
| data: this.props.data | ||
| }); | ||
| state.save(); |
There was a problem hiding this comment.
Интересно, у тебя нигде нет изменения state, но ты его сохраняешь, как-то не явно всё
| toggleCompleted() { | ||
| let data = this.props.data; | ||
| data.completed = !data.completed; | ||
| this.setState({data: data}); |
There was a problem hiding this comment.
Плохое название переменной data - у тебя много где эта переменная используется, становится непонятно, что там лежит
Всё работает кроме фокуса на input при редактировании тудушки.
Есть пара костылей, которые не удалось сделать нормально.