2017-04-04 78 views
0

我有例如這是我的redux商店中的一個關鍵,名爲user。當已登錄這是一個對象{ name: 'blah', foo:'bar' }。現在,當它是未登錄我希望它是undefined。然而,REDX抱怨Reducer "user" returned undefined to ignore an action return the previous state。不過我真的想要undefined。這是因爲在我的應用程序中,我有像這樣的用戶let { user:{name, foo}={} } = this.props解構。如果它是未定義的,則默認{}被取名爲foo而未定義。不過爲了避免這個錯誤,我設置了usernull,現在我處在一個受到傷害的世界裏,因爲我的所有破壞(let { user:{name, foo}={} } =)都失敗了,因爲當null沒有采用默認值時。我想減速機返回undefined

可以,如果我返回undefined? Redux發生了什麼壞事?

+0

您[無法從reducer中返回undefined](http://redux.js.org/docs/api/combineReducers.html#notes)在redux中。當用戶未登錄時,是否可以使用空對象,即'{}'? –

+0

@MichaelPeyper - Darn,我真的需要'undefined',因爲我在許多地方檢查'if(user)'來確定用戶是否也登錄過。也許在redux.connect我必須將null轉換爲undefined。 – Noitidart

回答

1

當Reducer返回undefined時,combineReducers實用程序會明確提醒您。此警告僅在開發中發生。因此,如果您可以在dev中接受該警告,請繼續並返回undefined

+0

哦,謝謝你,irikson – Noitidart