1
我正在使用React和Redux,Router開發應用程序。 但現在我無法將狀態設置(更新)爲'mapStateToProps'函數的狀態。 所以減速器的args'action'是'undefined'。 我認爲這個問題的原因是mapStateToProps的參數不能從任何地方傳遞。使用React和Redux時,狀態是未定義的對象,路由器
有誰知道如何傳遞一個狀態(從客戶端輸入數據)到mapStateToProps函數?
我的mapStateToProps函數就是這樣寫的。
const mapStateToProps = state=>{
console.log(state); // this 'state' return undefined.
return {
loginform: state
}};
export default connect(mapStateToProps)(LoginForm)
這是我的代碼。
指數
/index.js
let store = createStore(showUsername,
window.devToolsExtension && window.devToolsExtension());
ReactDOM.render(
<Provider store={store}>
<Router history={browserHistory}>
<Route component={AppNavBar}>
<IndexRedirect to='/login'>
<Route path='/login' component={LoginForm} />
</Route>
</Router>
</Provider>
,
document.getElementById('root')
);
組件
/Loginform.js
class LoginForm extends Component {
...
}
const mapStateToProps = state=>{
console.log(state); // this 'state' return undefined.
return {
loginform: state
}};
export default connect(mapStateToProps)(LoginForm)
ActionCreator
/actioncreator.js
export const showusername = 'showUsername';
export const showUsername =(username,index)=>{
console.log(username,index);
return{
type:showusername,
username,
payload:index
}
};
#Reducer
/reducer.js
const initialState = {
username: '',
password: '',
submit: false,
//request: 'self',
showselectfield: false
};
export default function showUsername(state = initialState, action) {
switch (action.type) {
case type.showusername:
return (
Object.assign({},initialState ,{username:action.username,password:action.password})
);
default:
return state
}
}
感謝,
謝謝!我改變了案例的價值,並且運作良好。但仍然'action.username'未定義。 – yasu
您是否能夠在actionCreator console.log()語句中看到用戶名 –
當我看到console.log(用戶名)時,它顯示未定義。 – yasu