Javascript 第一次加载时React Redux存储为空
我有一个登录页面,当提交表单时,它会从服务器返回一个令牌。 如果令牌存在,则不应显示登录表单 然而,当登录页面加载时,存储总是空的,页面显示登录表单,然后填充道具,组件更新 LoginForm.jsJavascript 第一次加载时React Redux存储为空,javascript,reactjs,react-redux,Javascript,Reactjs,React Redux,我有一个登录页面,当提交表单时,它会从服务器返回一个令牌。 如果令牌存在,则不应显示登录表单 然而,当登录页面加载时,存储总是空的,页面显示登录表单,然后填充道具,组件更新 LoginForm.js export const ADD_TOKEN = 'ADD_TOKEN'; export function addToken(token) { return { type: ADD_TOKEN, token, } } export default
export const ADD_TOKEN = 'ADD_TOKEN';
export function addToken(token) {
return {
type: ADD_TOKEN,
token,
}
}
export default {}
如您所见,当其中一个表单输入被更新时,它会更新状态,从而导致组件重新加载-很好
import { combineReducers } from 'redux'
import { ADD_TOKEN } from '../actions';
function token(state = null, action){
if(action.type === ADD_TOKEN){
return action.token;
}
return state;
}
const merchHunter = combineReducers({
token
})
export default merchHunter;
let store = createStore(
merchHunter,
undefined,
compose(autoRehydrate()
)
);
persistStore(store);
ReactDOM.render(
<Provider store={store}>
<MuiThemeProvider>
<App />
</MuiThemeProvider>
</Provider>, document.getElementById('root'));
registerServiceWorker();
应用程序加载器
import { combineReducers } from 'redux'
import { ADD_TOKEN } from '../actions';
function token(state = null, action){
if(action.type === ADD_TOKEN){
return action.token;
}
return state;
}
const merchHunter = combineReducers({
token
})
export default merchHunter;
let store = createStore(
merchHunter,
undefined,
compose(autoRehydrate()
)
);
persistStore(store);
ReactDOM.render(
<Provider store={store}>
<MuiThemeProvider>
<App />
</MuiThemeProvider>
</Provider>, document.getElementById('root'));
registerServiceWorker();
let store=createStore(
默克亨特,
未定义,
合成(自动水化)
)
);
商店(店);;
ReactDOM.render(
,document.getElementById('root');
registerServiceWorker();
我没有使用redux-persist
库,但该库不会同步重新水化。你有一个未更新的状态。我在这个图书馆的一次讨论中发现了
您只需使用
Promise
等待redux
状态重新水化,然后再呈现您的应用程序。那么您希望redux存储在重新加载页面后保持该状态吗?我刚刚更新了我的问题。基本上,当组件加载时,道具看起来是空的,但是随后填充导致组件重新渲染。你是说道具只有在提交表单后才被填充吗?我应该补充一点,我已经在顶级组件上使用persistStore了。我正在检索令牌,但当在组件呈现时注销令牌时,我会得到1)令牌:null,2)令牌:“12345”与组件呈现相同。请演示如何检索令牌并将其传递给redux
storeOk,下次别忘了提及您还使用了哪些库redux persist
是问题的重要提示:重复我的答案