React는 useReducer TypeScript로 컨텍스트 생성
10559 단어 reactwebdevjavascript
useReudcer
후크를 사용하여 상태 관리를 위한 React Context API를 탐색할 것입니다. 타사 라이브러리나 일부 항목을 설치할 필요가 없습니다. 이것이 핵심 기능입니다. 그럼 바로 시작하겠습니다!먼저
src/
와 같이 state
라는 폴더를 src/state
아래에 만듭니다. 그런 다음 StateProvider.tsx
및 reducer.ts
두 개의 파일이 필요합니다.이제
StateProvider.tsx
파일 안에 아래 코드를 작성하십시오.import React, { createContext, useContext, useReducer } from "react";
import { reducer, initialState, State } from "./reducer";
const AppContext = createContext<any>(null);
interface Props {
children: JSX.Element | JSX.Element[];
}
export const StateProvider: React.FC<Props> = ({ children }) => (
<AppContext.Provider value={useReducer(reducer, initialState)}>
{children}
</AppContext.Provider>
);
export const useStateValue = () => useContext(AppContext);
컨텍스트 API를 가져오고 하위 구성 요소를 래핑합니다.
Reudcer.ts
export const actionTypes = {
INCREMENT: "INCREMENT",
};
export interface State {
count: number;
}
export const initialState: State = {
count: 0,
};
export const reducer = (state = initialState, action: any) => {
switch (action.Type) {
case actionTypes.INCREMENT:
return {
...state,
count: state.count + action.count,
};
default:
return state;
}
};
감속기 기능을 생성하고 조건부로 Type을 확인합니다.
마무리
전역적으로 상태에 액세스할 수 있도록
<App />
구성 요소를 래핑해야 합니다./src/index.tsx
<React.StrictMode>
<StateProvider>
<App />
</StateProvider>
</React.StrictMode>,
액세스 및 파견
이제 상태에 액세스하고
useStateValue
함수를 후크로 사용하여 쉽게 전달할 수 있습니다.import React from "react";
import { useStateValue } from "./state/StateProvider";
import { actionTypes } from "./state/reducer";
import "./App.css";
function App() {
const [state, dispatch] = useStateValue();
console.log(state);
const incrementHandler = () => {
dispatch({
Type: actionTypes.INCREMENT,
count: 1,
});
};
return (
<div className="App">
<button onClick={incrementHandler}>Add +</button>
<h2>{state.count}</h2>
</div>
);
}
export default App;
`
자식 저장소: https://github.com/lifeeric/react-context-with-useReducer/tree/master
감사합니다
이 게시물이 도움이 된다면 친구, 가족, 동료 및 직장 동료와 공유하십시오.
저는 현재 일자리를 찾고 있습니다. 저에게 기회가 있다면 저를 고려해주세요.
https://ericgit.me
Reference
이 문제에 관하여(React는 useReducer TypeScript로 컨텍스트 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/hasone/react-createcontext-with-usereducer-typescipt-9pc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)