【发布时间】:2021-07-03 18:19:46
【问题描述】:
我只是学习 react-native 基础,在使用 redux 时,我遇到了 useSelector 的问题,这是我的一些代码
这里是 store 组件
//store.js
initState = {
loginStatus: false,
}
const LoginAction = (state = {initState}, action) => {
if (action.type == 'changeLogin') {
return { loginStatus:!state.loginStatus }
}
return state
}
const store = createStore(LoginAction, composeWithDevTools());
export default store
这里是登录功能
function LoginScreen({ navigation, props }) {
const dispatch = useDispatch()
const Login = useSelector(state => {
return state.LoginStatus
})
function getLogin() {
return Login
}
function handleLogin() {
dispatch({ type: 'changeLogin' })
}
console.log('Login ' + Login) // it return undefined
我试过这个方法useSelector state returns undefined (React-Redux)但是没用! 这是发生的截图
但是当我将它添加到登录按钮时,它返回 true,然后继续未定义
<Formik
validateOnMount
validationSchema={loginValidationSchema}
initialValues={{ email: '', password: '' }}
onSubmit={
() => {
handleLogin()
console.log('When submit ' + Login) // true then undefined
SetTimer();
}
// () => navigation.navigate('Login')
}
>
请帮忙,非常感谢
【问题讨论】:
-
我对 Formik 不熟悉,但它会在幕后的 onSubmit 处理程序中阻止默认吗?因为如果不是,则意味着您的浏览器窗口会刷新,失去其整个状态。
-
我觉得应该是
const LoginAction = (state = initState)而不是const LoginAction = (state = {initState}) -
关于formik防止默认stack
-
嘿它工作!!!! @WebbH,但为什么????????
-
我对 formik 真的不太了解,但我将它全部刷新,因为当我在 formik 中记录一个变量时,它会循环
标签: javascript reactjs react-native redux react-redux