React Redux: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 57: | Line 57: | ||
store.dispatch({type:'', data: 30.00}); | store.dispatch({type:'', data: 30.00}); | ||
</syntaxhighlight> | |||
=Example Component= | |||
Show us subscribing to the store to make sure updates passed down to the components. | |||
<syntaxhighlight lang="javascript"> | |||
class MainConponent extends React.Component { | |||
componentDidMount() { | |||
store.subscribe( () => { | |||
this.setState({}); | |||
} ) | |||
} | |||
render() { | |||
return ( | |||
<div> | |||
<Conversion originalAmount={store.getState().originalAmount} /> | |||
</div> ) | |||
} | |||
} | |||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 05:38, 23 May 2020
Unidirectional
Data only flows one direction
Pure Functions
- Like static is c#/c++ only using inputs to produce outputs
function multiply(a, b)
{
return a * b;
}
- No side effects
- Also yields same result
Immutability
ES6 allows us to copy objects using Object.assign e.g.
var state = {color:'red', name: 'Adam', point:5}
var state2 = Object.assign({}, state, {point:50})
Example
Note ... is new syntax for spread
Stores often are stored in stores/configurationStore.js at the same level as compontents
import {createStore} from 'redux'
var defaultState = {
originalAmount: 0.00
};
function amount(state = defaultState, action) {
if(action == = 'CHANGE_ORIGIN_AMOUNT') {
return {
...state,
originalAmount: action.data
}
// return Object.assign({},state, {originalAmout: action.data})
}
}
var store = createStore();
store.subscribe(function() {
console.log('state', store.getState());
})
store.dispatch({type:'CHANGE_ORIGIN_AMOUNT', data: 30.00});
store.dispatch({type:'', data: 30.00});
store.dispatch({type:'', data: 30.00});
Example Component
Show us subscribing to the store to make sure updates passed down to the components.
class MainConponent extends React.Component {
componentDidMount() {
store.subscribe( () => {
this.setState({});
} )
}
render() {
return (
<div>
<Conversion originalAmount={store.getState().originalAmount} />
</div> )
}
}