[英]Redux - Data not updating in Redux store
I'm having trouble passing some data fetched via axios into the Redux store to be used on another component.我无法将通过 axios 获取的一些数据传递到 Redux 存储以用于另一个组件。 I have other actions and reducers that are very similar and are working, but this one isn't.
我有其他非常相似并且正在工作的动作和减速器,但这个不是。
The dataflow is as follows:数据流如下:
// actions/index.js
export const UPDATE_APPT_LIST = "UPDATE_APPT_LIST"
export const updateInfo = list => {
return {
type: UPDATE_APPT_LIST,
list
}
}
// reducers/index.js
import { UPDATE_APPT_LIST } from '../actions'
const updateInfoReducer = (list = [], action) => {
switch (action.type) {
case UPDATE_APPT_LIST:
return action.list;
default:
return list;
}
}
// Filter.js
class Filter extends React.Component {
state = { info: [] }
async componentDidMount() {
await this.retrieveInfo()
}
retrieveInfo = async () => {
let res = await axios.get('someURL')
updateInfo(res.data) // update redux store function
this.setState({ info: res.data })
}
}
mapStateToProps = state => {
return { infoList: updateInfoReducer }
}
export default connect(mapStateToProps, { updateInfo })(Filter)
// Info.js
class Info extends React.Component {
render() {
console.log(this.props)
return (... some jsx)
}
}
mapStateToProps = state => {
return state
}
export default connect(mapStateToProps)(Info)
Found the answer and it's a silly one.找到了答案,这是一个愚蠢的答案。 I forgot
const { updateInfo } = this.props
in Filter.js.我忘记了 Filter.js 中的
const { updateInfo } = this.props
this.props。 This would lead the action to be dispatched anyways but action.type
did not match in the reducer, leading the default case to be fired.无论如何,这将导致 action 被调度,但
action.type
在 reducer 中不匹配,导致默认情况被触发。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.