Document useDispatcher pattern
Ninguém assumiu esta issue ainda.
- Linguagem predominante
- JavaScript
- Estrelas
- 11.8k
- Forks
- 7.9k
- Merge médio
- 1d 11h
- PRs com merge (30d)
- 11
Descrição
To mimic (easily testable) behaviour similar to redux thunk, a pattern such as useDispatcher can be used:
import React, { useReducer } from "react";
import ReactDOM from "react-dom";
import "./styles.css";
function App(props) {
var { state, click } = useStore();
return (
<div>
<h1>State: {state}</h1>
<button onClick={click}>Increment</button>
</div>
);
}
function useStore(props) {
var [ state, dispatch ] = useReducer(reducer, []);
var { click } = useDispatcher(dispatch, props);
return {
state,
click
};
}
function useDispatcher(dispatch, props) {
function click() {
dispatch({ type: 'click' });
setTimeout(() => afterclick(), 2000);
}
function afterclick() {
dispatch({ type: 'afterclick' });
}
return { click };
}
function reducer(state, { type, dispatch }) {
switch (type) {
case "click":
return [...state, "click wait 2s..."];
case "afterclick":
return [...state, "....after"];
}
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
Documenting this pattern may also help to ensure this is an optimised approach, or whether another solution is preferable.
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Comece com o exemplo de useDispatcher na issue e examine a estrutura da documentação do React para determinar onde esse padrão poderia ser documentado. Compare-o com um comportamento semelhante ao do redux-thunk e decida se o padrão é otimizado ou se outra solução é preferível; considera-se concluído quando a documentação explicar claramente a recomendação.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- javascript, react
- Domínio
- documentation
- Tipo de issue
- Documentação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Status de atividade
- Estagnada
- Clareza
- Precisa de esclarecimento
- Facilidade para iniciantes
- 25/100