O que é isso
Esta é uma revisão de código das soluções da segunda tarefa de teste . O vídeo mostra soluções e erros bem-sucedidos, além de dicas para corrigi-los. Esta nota identifica problemas comuns e fornece links com um "carimbo de data / hora".

Problemas comuns
- Leiame incorreto;
- Existem avisos eslint,
console.log
extra (o redux-logger não conta); - Ícone da Web não avançado (leitura desatenta da tarefa);
- O ícone da Web é empurrado para a frente no componente (e seria melhor no redutor ou na ação);
- A senha não será limpa se a solicitação retornar com um erro;
- Um botão de envio no formulário de login estará disponível se os campos estiverem vazios (ou um dos campos);
- O botão Enviar no formulário de login não suporta pressionar Enter;
- Não há divisão em componentes / contêineres (não se aplica a quem compartilha de outras abordagens);
- A URL para solicitações ao servidor é completamente transmitida (não há registro da parte repetida da sequência como uma constante);
- Erro / notificação "nome de usuário / senha incorretos" - não é limpo;
- Erro "nome de usuário / senha incorretos" - é gerado por uma constante do servidor;
- O texto do erro está codificado no código. Não há acesso ao dicionário por constante do servidor;
- O "código antigo" não foi excluído, ou seja, código que não é usado em nenhum lugar;
- As promessas não têm um bloco de captura, não há tratamento de erros se o servidor responder que não está
ok
; - Os componentes são hospedados em node_modules;
- Os tipos de suporte estão ausentes ou estão descritos inadequadamente.
- Ações e redutores na pilha em um arquivo (ou em uma em todas as ações, na outra em todos os redutores). Não há divisão em “módulos”, isto é, cada entidade - suas próprias ações e seus redutores;
Todas as soluções com registro de data e hora
Somente erros são indicados aqui, e bons pontos não são anotados , dos quais existem muitos, por isso recomendo assistir tudo seguidamente àqueles que se consideram "junho" em desenvolvimento ao reagir.
6m00s - Compromisso de Arthur Donkovtsev
7m40s - erro de digitação no nome da função
8m07s - solicitações assíncronas não colocadas em ação
9m30s - Compromisso Pavel Pimkin
10m07s - todas as ações em um arquivo. Não há divisão em módulos.
10m25s - a remoção do ícone (enumeração de dados) é feita no componente. Melhor em um redutor ou ação.
11m42s Sergey ZackFox Commit
12m28s - inscrições "legais". É melhor fazê-lo "de maneira neutra", para que tarefas semelhantes possam ser enviadas imediatamente ao empregador.
13m05s - uma ação extra indicando que o "download" foi concluído. Ou seja, em vez de três ações: SOLICITAR / SUCESSO / PARAR, você pode conhecer duas: SOLICITAR / SUCESSO.
16m16s - Dmitry Petrov Commit
18m16s - usando var
18m34s - parte do endereço URL não constante
21m15s - Compromisso de pão de Yefim
21m17s - mensagem de confirmação incorreta
22m15s são os mesmos nomes de ação.
24m16s - Katsura Vladislav Commit
25m17s - (não é um erro) - dados preparados em um redutor
27m38s - usando e.target
, melhor e.currentTarget
28m20s - ==
, mas seria necessário ===
28m33s - usando componentWillUnmount
29m00s (não é um erro) - raciocínio sobre "antes da validação do servidor".
30m05s - o código não está formatado (para um amador)
30m33s - Maxim Safin Commit
31m35s - usando um manipulador "não universal", quando apropriado.
32m02s - Sergey recupera o compromisso de Linkas
33m42s - nenhuma ação para o pré-carregador
34m30s - a ordem dos métodos no componente. ( plugin eslint )
35m30s - PropTypes inexistentes
35m57s - Kononov Vitaly Commit
38m02s - Renat Rysaev Commit
39m45s - não faça o que não é interessante
40m31s - Evgeny Sanzhiev Commit
41m20s (não é um erro) - dicionário para trabalhar com erros
42m46s - Confirmação de Aterro Vitaliy
42m54s - dados de teste não limpos
44m50s - Veniamin Trepachko Commit
Realização: design muito legal.
47m42s - a versão redux não está cheia.
47m57s - Confirmação de Ingvarr6 (Igor)
48m21s - sem 404 rotas
51m20s - Catherine H Cometer
51m30s - erro não é limpo
54m48s - Compromisso Romano-Palestino
55m30s - ações / erro de download insuficientes
56m49s - usando efeitos colaterais em um redutor
58m10s - (não é um erro) remover o ícone da web usando css (doente!)
58m53s - Umyar Yusupov Commit
59m15s - usando retorno de chamada em setState, o que leva a um redesenho desnecessário. É melhor validar diretamente na renderização.
61m01s - uso inadequado de else if
62m13s - dsfcv d (pontuação inicial)
63m15s Konstantin Lipsky Commit
65m11s - o URL inteiro é transferido para a ação, é melhor apenas passar o ID nesta opção.
67m14s - Ikaow Ikaow Commit
67m50s é uma condição difícil no shouldComponentUpdate, pode ser mais simples (verifique imediatamente em props.data e pronto)
69m32s - e.preventDefault
não e.preventDefault
o primeiro no manipulador
70m01s - Compromisso Ali Gasymov
71m50s - Akhmetanov Albert Commit
72m20s - componentes em node_modules
73m15s - chamadas variáveis duplicadas
74m04s - Eugene White Commit
76m04s - privateRoute não movido para um componente separado
76m33s - código complexo para mover ícones da web
76m56s - propriedade redundante carregada
77m35s - Aladyin Alexander Commit
80m33s - erro não cometido no dicionário
81m19s - Compromisso de Misha Mihail
81m43s - uso redundante com o withRouter
83m04s - Compromisso de Dmitrii Shapovalenko
84m00s - Compromisso de Daniel
84m58s - divisão de ação redundante
85m55s - erro no nome do método do ciclo de vida
86m58s - Compromisso romano de Poroshin
87m15s - uso semanticamente incorreto da tag do article
90m46s - uma chamada extra para o método array
91m10s - Artem Bochkov Commit