import * as React from 'react'; /** * * @param reducers 由 reducer 組成的物件 * @returns React.useReducer 的第一個參數 * @example * // 創建 reducer (reducer1, reducer2... ) * const reducer = (state: any, action: any) => { * switch (action.type) { * case "INCREMENT": * return { * ...state, * a: state.a + action.step * }; * case "DECREMENT": * return { * ...state, * }; * default: * return state; * } *} * * const combineReactReducer = combineReactReducers({ * reducer, * reducer1, * ... * }); */ export declare const combineReactReducers: (reducers: any) => (state: any, action: any) => any; export interface ReactProviderProps { /** * 需要使用本Context的所有子組件 */ children?: React.ReactNode; /** * 透過 createWowgoStore(reducer) 創建的Store, * 註 : reducer: (initialState: any, action: any) => (any) */ store: {}; } /** * * @param props * @returns WowgoReactProvider * * @example * * const combineReactReducer = combineReactReducers({ * reducer, * reducer1, * ... * }); * * // 對應 combineReactReducer 的狀態初始值 * const initialState={ reducer: {}, reducer1: {}, ...} * * const App = () => { * const [stroe, dispatch] = React.useReducer(combineReactReducer, initialState); * * // 還可以把 useState 放進 WowgoReactProvider 使用,稍後使用 useWowgoReactSelector 取得值 * // const [SomeState, setSomeState] = React.useState(null) * * return ( * * * * ); * } * * export default App; * */ export declare const WowgoReactProvider: React.FC; /** * * @param selector 篩選函數 * @returns 篩選過後的狀態值 * * @example * * export interface S { * todo: number * } * * const AboutPage = (props: any) => { * * const todo = useWowgoReactSelector(state => state.reducer1.todo) * * return ( *

* {todo} *

* ) * * export default AboutPage */ export declare const useWowgoReactSelector: (selector: (state: Type) => TSelected) => TSelected;