Ваша главная проблема здесь не на самом деле с Firebase, поскольку я считаю, что все остальное в порядке, а с React-Redux.
При подключении компонента к хранилищу функция подключения получает две функции.Первый (обычно называемый mapStateToProps
) получает состояние и возвращает объект, который будет добавлен в реквизит.В этом случае вы не используете его, поэтому допустимым является принятие null
.
Второй (обычно называемый mapDispatchToProps
) получает диспетчеризацию в качестве параметра и должен вернуть объект с функциямиэто будет вставлено в реквизит, который может быть использован для отправки новых действий.В этом случае вы просто передаете объект в качестве второго параметра connect { jobsFetch }
.
Когда вы делаете this.props.jobsFetch();
, вы фактически возвращаете функцию, которая получает диспетчеризацию, поэтому на самом деле ничего не выполняется.
Ваш mapDispatchToProps
должен быть похож на этот
const mapDispatchToProps = dispatch => {
return {
jobsFetch : () => dispatch(jobsFetch())
}
}
export default connect(
null,
mapDispatchToProps
)(JobsList)
Здесь я предполагаю, что вы на самом деле используете Redux thunk , так как вы возвращаетефункция, которая получает диспетчеризацию как параметр в ваших действиях.
Как вы можете видеть, мы сначала вызываем jobsFetch()
, чтобы получить функцию, которая получает редуктор, а затем отправляем ее.
Дайте мне знать, если это не работает!Может быть что-то еще, что не правильно, но это то, что следует устранить.Надеюсь, это поможет!