1,index.js
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import { createStore } from 'redux'
import { Provider } from 'react-redux'
import reducer from './index.reducer'
//創建store
const store = createStore(reducer);
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root'));
2,index.reducer.js
const tiger = 100
//這是action
const increase = {
type: '加'
}
const decrease = {
type: '減'
}
//這是reducer
const reducer = (state = tiger, action) => {
switch (action.type) {
case '加':
return state +=100
case '減':
return state -=100
default:
return state;
}
}
export default reducer
3,APP.JS
import React, { Component } from 'react';
import { connect } from 'react-redux';
class App extends Component {
componentDidMount() {
console.log('this.props====',this.props.tiger)
}
render() {
const { PayIncrease, PayDecrease } = this.props;
return (
<div className="App">
<h2>{this.props.tiger}</h2>
<button onClick={PayIncrease}>+++++</button>
<button onClick={PayDecrease}>-----</button>
</div>
);
}
}
//需要渲染什麼數據
function mapStateToProps(state) {
return {
tiger: state
}
}
//需要觸發什麼行爲
function mapDispatchToProps(dispatch) {
return {
PayIncrease: () => dispatch({ type: '加' }),
PayDecrease: () => dispatch({ type: '減' })
}
}
export default App = connect(mapStateToProps, mapDispatchToProps)(App)