Я хочу экспортировать код, обновляющий мои данные, чтобы получить к нему доступ из любой части моего кода.Эта функция должна быть подключена к Redux для обновления Store после обновления данных.Для этого я создал файл «updateData.js» со следующим кодом:
// Redux
import { connect } from "react-redux"
import { ... } from "../redux/actions"
const mapStateToProps = state => ({ ... })
const mapDispatchToProps = dispatch => ({ ... })
const updateData = async () => {
const { ... } = this.props
const getURLs = [ "/getProjects/Active", ... ]
const toRedux = [ addProjects, ... ]
var promiseArray = []
for (var i = 0; i < getURLs.length; i++) {
const promise = getAsyncData(getURLs[i], toRedux[i])
promiseArray.push(promise)
}
await Promise.all(promiseArray).then(() => {
this.props.setUpdateOk(true)
})
}
export default connect(
mapStateToProps,
mapDispatchToProps
)(updateData)
Вызывающий файл делает это:
import updateData from "./client/data"
class App extends Component {
componentDidMount() {
updateData()
}
Но я получаю сообщение об ошибке:
TypeError: Невозможно установить свойство 'props' из неопределенного
391 |* / 392 |393 |функция PureComponent (реквизиты, контекст, средства обновления) {
394 |this.props = props;|^
395 |this.context = context;// Если у компонента есть строковые ссылки, позже мы назначим другой объект.396 |397 |this.refs = emptyObject;
Кажется, что "this" не определено.
Я подозреваю, что проблема this / binding, но не могу понять, как ее исправить ...
Спасибо за помощь.