如何解决React JS 15.0 - Reducers 根本不工作
我正在使用其他人创建的 reactjs 应用程序,它是基于 react-redux 的 2016 年 React js 应用程序。它使用 React 15.0 和以下配置:
"react": "^15.0.0","react-ace": "^3.4.1","react-bootstrap": "^0.29.4","react-chartjs": "^0.7.3","react-datepicker": "^0.27.0","react-dom": "^15.0.0","react-quill": "https://github.com/zenoamaro/react-quill.git","react-redux": "^4.0.0","react-redux-toastr": "^3.1.0","react-router": "^2.2.0","react-router-bootstrap": "^0.22.1","react-router-redux": "^4.0.0","react-router-scroll": "^0.2.0","react-scroll": "^1.0.15","react-select": "^1.0.0-beta13","react-stripe-checkout": "^1.8.0","redux": "^3.0.0","redux-actions": "^0.9.1","redux-form": "^5.1.4","redux-thunk": "^2.0.0","rimraf": "^2.5.1",
我在 API 调用方面遇到问题, 我正在使用自定义 http.js 文件,该文件基于 XHR 调用做出承诺。这很有效并返回一个 JSON:
function request (path,method,data = undefined) {
return new Promise(function (resolve,reject) {
...
let xhr = new XMLHttpRequest()
xhr.open(method,`//${__DEV__ ? 'localhost:3000' : 'mywebsite.com'}/${path}`,true)
xhr.setRequestHeader('Content-type','application/json; charset=utf-8')
xhr.send(data ? JSON.stringify(data) : data)
...
const response = JSON.parse(xhr.responseText)
resolve(response)
...
})
}
我这样调用函数:
get: (path) => {
return request(path,'GET')
},Http.get('api/users')
.then((response) => {
users= response.resources
})
.catch((error) => {
console.warn('Unable to get users:',error)
})
我收到错误消息,指出用户未定义,因为响应包含 JSON 而不是具有关键“资源”的对象。我不是 React js 开发人员,但我看到在大多数情况下,有一个定义结构的构造函数,但在我的情况下没有构造函数。
我有一个供用户使用的自定义 Reducer:
// ------------------------------------
// Reducer
// ------------------------------------
export default handleActions({
[SET_USERS_DATA]: (state,action) => ({
...state,resources: { data: action.payload,loading: state.resources.loading }
}),
我想这现在运行良好,我如何确保减速器运行良好?我该如何调试?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。