87,910
社区成员
发帖
与我相关
我的任务
分享
import {takeEvery, put} from 'redux-saga/effects'
import {GET_NAME_VALUE} from './actionTypes'
import axios from 'axios'
import {getName} from './actionCreators'
function* fetchGetName(action) {
console.log(action)
const res = yield axios.get('/test.json')
const name = res.data.name
yield put(getName(name))
}
function* mySaga() {
yield takeEvery(GET_NAME_VALUE, fetchGetName)
}
export default mySaga
import React, { Component } from 'react'
import store from './store'
import { getName } from './store/actionCreators'
export default class App extends Component {
constructor(props) {
super(props)
this.state = store.getState()
}
render() {
return (
<div>
<button onClick={() => this.handleGetName()}>SHOW NAME</button>
<p>{this.state.name}</p>
</div>
)
}
// 监听store 重新更改页面中的state
componentDidMount() {
store.subscribe(() => this.setState(store.getState()))
}
handleGetName() {
store.dispatch(getName())
}
}