您好,这个问题是this one的继续!
我正在通过ajax请求动态获取路由(在官方文档“运行时声明资源”中的this文章之后),我正在使用async函数从ajax返回资源列表请求。
分派操作以存储元数据的最佳方法是什么,该方法是我在redux中通过ajax请求获得的,以便以后访问?
此外,当用户尚未登录时,此功能将不返回任何内容,登录后,用户将可以访问几个资源。重新加载资源的最佳方法是什么?
答案 0 :(得分:0)
要使其正常工作,我添加了一个私有变量,该变量存储问题中提到的数据,并通过从该文件导出的另一个函数访问它。
这给了我我所需的东西,但是我不知道这是否是最好的选择。
答案 1 :(得分:0)
最好的选择是使用- alert: Alert
for: 5m
expr: ...
annotations:
timestamp: >
time: {{ with query "time()" }}{{ . | first | value | humanizeTimestamp }}{{ end }}
。 https://redux-saga.js.org/docs/introduction/BeginnerTutorial.html
然后
redux-saga
如果您不能使用redux-saga,我喜欢使用带有私有变量的解决方案。您应该继续这样做。
答案 2 :(得分:-1)
https://github.com/redux-utilities/redux-actions
redux-actions真的很容易设置。配置存储,然后可以在一个文件中设置每个状态值:
import { createAction, handleActions } from 'redux-actions'
let initialState = { myValue: '' }
export default handleActions({
SET_MY_VALUE: (state, action) => ({...state, myValue: action.payload})
})
export const setMyValue = createAction('SET_MY_VALUE')
export const doSomething = () => {
return dispatch => {
doFetch().then(result => {
if (result.ok) dispatch(setMyValue(result.data))
})
}
}
然后在您的组件中,您只需连接即可访问状态值
import React from 'react'
import PropTypes from 'prop-types'
import { connect } from 'react-redux'
class MyComponent extends React.Component {
render = () => (
<span>{this.props.myValue}</span>
)
}
MyComponent.propTypes = {
myValue: PropTypes.string.isRequired
}
const mapStateToProps = (state) => ({
myValue: state.myState.myValue
})
const mapDispatchToProps = () => ({})
export default connect(mapStateToProps, mapDispatchToProps)(MyComponent)