Когда я заменяю «this.props.fetchInfo (recipe.id)» на console.log (recipe.id), «recipe.id» регистрируется при нажатии на div. Однако действие никогда не запускается. У меня есть другой файл console.log в моем действительном создателе действий, который регистрирует идентификатор, если он действительно передается, но я просто получаю сообщение об ошибке (что, как я ожидаю, но я полагаю, что, по крайней мере, зарегистрирует идентификатор перед ошибками в моем приставка). Я не уверен, правильно ли настроена структура для компонента «Рецепт», хотя выглядит так, как есть. Кроме того, я не уверен, есть ли более правильный способ сделать то, что я пытаюсь сделать, а именно взять часть (recipe.id) состояния из моего последнего запроса AJAX и использовать его для создания второй AJAX-запрос на возврат нужной мне информации. Ниже приведен компонент Рецепт:
import React, { Component } from "react";
import { bindActionCreators } from "redux";
import { connect } from "react-redux";
import { fetchInfo } from "../actions";
// Here we take in the passed in props from the FoodList component and render
// the dishes for the inputted ingredients
class Recipe extends Component {
renderFood(food) {
return (
<div className="food-container">
{food.map(function(recipe) {
console.log(recipe.id);
return (
<div
className="indiv-recipe"
style={{
backgroundImage: "url(" + recipe.image + ")"
}}
onClick={() => this.props.fetchInfo(recipe.id)}
>
<div id="recipe-title"> {recipe.title}</div>
</div>
);
})}
</div>
);
}
render() {
return (
<div>
<h1>{this.props.foods.map(this.renderFood)}</h1>
</div>
);
}
}
function mapDispatchToProps(dispatch) {
return bindActionCreators({ fetchInfo }, dispatch);
}
export default connect(
null,
mapDispatchToProps
)(Recipe);