Few things:
First one: Why this? https://github.com/gaearon/redux/blob/master/src/components/Connector.js#L19 - not sure whether "flux" lib should cream about this part.
Second one: due to custom method shouldComponentUpdate "rerendering" of component does not work.
Look at my code:
Inside container component:
<Connector select={select}>
{({ userFooter, dispatcher }) =>
<UserFooter userFooter={userFooter} {...bindActions(UserActions, dispatcher)} />
}
</Connector>
select method:
let select = (state) => {
return {
userFooter: state.userFooter
}
}
Store:
const initialState = {
isAuthenticated: false,
email: ''
}
let setAuthenticated = (state) => {
state.isAuthenticated = false
state.email = ''
return state
}
export default createStore(initialState, {
[LOGIN_SUCCESS]: (state, action) => {
state.isAuthenticated = true
state.email = action.email
return state
},
[LOGIN_FAILURE]: (state, action) => {
return setAuthenticated(state)
},
[LOGOUT]: (state, action) => {
return setAuthenticated(state)
}
})
Then state.isAuthenticated will change to false. But Connector component does not render component "UserFooter" inside.
UserFooter component:
export default (React) => {
let types = React.PropTypes
let UserFooter = (props) => {
console.log('props', props)
return {
__proto__: React.Component.prototype,
props,
logout (e) {
e.preventDefault()
this.props.logout()
},
render () {
let {isAuthenticated, email} = this.props.userFooter
console.log('render', isAuthenticated)
return (
<div>
{isAuthenticated ? (
<p>
Logged as : {email}
<br/>
<a onClick={(e) => this.logout(e) }>Sign Out</a>
</p>
) : (
<Link to='login'>Sign In</Link>
)}
</div>
)
}
}
}
UserFooter.propTypes = {
// isAuthenticated: types.bool.isRequired,
// email: types.string,
userFooter: types.object.isRequired,
logout: types.func.isRequired
}
return UserFooter
}
Last thing: Amazing work mate!
You can’t perform that action at this time.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4