reactjs - 依赖注入调用导出默认失败
问题描述
大家晚安,我想做的是通过在 loadUA 函数中绑定来注入 axios,但是当在组件中默认导入时,我得到了这个错误。原因是我想消除方法中的轴依赖,以便我可以更轻松地执行测试,没有加载中的绑定一切正常,但我无法通过绑定注入轴并在组件中使用该方法。
组件
import React from 'react';
import { connect } from 'react-redux';
import loadUA from './actions'
class UserAgent extends React.Component {
componentDidMount(){
this.props.loadUA()
}
render(){
if(this.props.isFetching){
return <span> Loading ...</span>
}
if(this.props.error){
return <span>Error</span>
}
return (
<span>{this.props.data['user-agent']}</span>
)
}
}
const mapStateToProps = (state) => {
return {
isFetching: state.UA.isFetching,
data: state.UA.data,
error: state.UA.error
}
}
const mapDispatchToProps = (dispatch) =>{
return {
loadUA: () => dispatch(loadUA())
}
}
export default connect( mapStateToProps, mapDispatchToProps )(UserAgent)
行动
import axios from 'axios'
export const loadUARequest = () => {
return {
type: 'LOAD_UA_REQUEST'
}
}
export const loadUASuccess = (data) => {
return{
type: 'LOAD_UA_SUCCESS',
data
}
}
export const loadUAError =() =>{
return{
type: 'LOAD_UA_ERROR'
}
}
export const loadUA = (axios) => {
return dispatch => {
dispatch(loadUARequest())
axios
.get('https://httpbin.org/user-agent')
.then(({data}) => dispatch(loadUASuccess(data)))
.catch(() => dispatch(loadUAError()))
}
}
export default {
loadUA: loadUA.bind(null, axios)
}
错误
解决方案
推荐阅读
- twisted - 缺少“io.h”文件和致命错误 C1083:无法打开包含文件:“io.h”:没有这样的文件或目录
- c++ - 由 valgrind 识别的内存泄漏,涉及使用 malloc 返回通过 std::string 返回的字符串
- python - 在 Tensorflow 2.2 中使用具有 SparseCategoricalCrossEntropy 损失的 tf.metrics.MeanIoU() 时出现尺寸不匹配错误
- ethereum - 无法在 etherscan 上验证合约 - 无法找到匹配的字节码 (err_code_2)
- typescript - 使handleRequest成为passportjs警卫上的异步方法
- c# - 当 signalR 电路异常中断时,服务器端 Blazor 用户注销
- javascript - 如何在javascript中执行递归方法
- java - 尝试使用 Maven 程序集插件时出现“程序集配置错误:null”
- sql - 事务中的 SQL IF 语句
- reactjs - 如何通过在 Rect 中添加所有项目字段来设置购物车小计