const dispatch = useDispatch()
const dispatch = useDispatch()
const dispatch = useDispatch()
const dispatch = useDispatch()
const dispatch = useDispatch()
export default function useActions(actions, deps) { const dispatch = useDispatch(); return useMemo( () => { if(Array.isArray(actions)) { return actions.map(a => bindActionCreators(a, dispatch)); } return bindActionCreators(actions, dispatch); }, deps ? [dispatch, ...deps] : deps ); }
React.memo(function UserItem({ name, id }) { useRenderTracking(`UserItem: ${name}`); const dispatch = useDispatch(); const onRemove = () => { dispatch(setUserRemoving()); Api.removeUser({ name, id }) .then(() => dispatch(setUserRemoved({ name, id }))) .catch(() => dispatch(setUserRemoveError())); }; return <ListItem onRemove={onRemove}>{name}</ListItem>; })
export default function TodoFilter(props) { const dispatch = useDispatch(); const hanldeOnChange = (e) => { let { value } = keyboardEvent(e); dispatch(creators.setInputFilter(value)); }; return ( <> <input placeholder="Type here to filter" onChange={hanldeOnChange} /> </> ); }
function HooksCakeContainer() { const numOfCakes = useSelector(state=> state.cake.numOfCakes) const dispatch = useDispatch() return ( <div> <h2>Hooks Number of cakes - {numOfCakes}</h2> <button onClick = {()=> dispatch(buyCake())}>Buy Cake</button> </div> ) }
const HeaderContainer = () => { const dispatch = useDispatch(); const { user } = useSelector(({ user }) => ({ user: user.user, })); const onLogout = () => { dispatch(logout()); }; return <Header user={user} onLogout={onLogout} />; }
const App = () => { const { count } = useSelector(state => state.counter); const dispatch = useDispatch(); const { increase, decrease } = counterActions; return ( <div> <h1>Count: {count}</h1> <button onClick={() => dispatch(increase())}>increase</button> <button onClick={() => dispatch(decrease())}>decrease</button> </div> ); }
export function useChangeSortBy() { const dispatch = useDispatch(); return React.useCallback(sortBy => dispatch(changeSortBy(sortBy)), [ dispatch ]); }
React.memo(function UserItem({ name, id }) { useRenderTracking(`UserItem: ${name}`); const dispatch = useDispatch(); const onRemove = () => { dispatch({ type: ON_USER_REMOVE_START, user: { name, id } }); }; return <ListItem onRemove={onRemove}>{name}</ListItem>; })
// Component const Message = () => { const { message: { open, success, message } } = useSelector(state => state.common) const dispatch = useDispatch() return ( open && <Toast message={message} success={success} onPress={() => dispatch(messageHide())} /> ) }
function UserRow({ user }) { const dispatch = useDispatch(); const { id, username } = user; const deleteUser = useCallback(() => { dispatch(userActions.deleteUser(id)); }, [id, dispatch]); return <div onClick={deleteUser} className="user-row-label">{username}</div>; }