Я добавил React в свое приложение Rails 5.3 через install:webpacker:react
. У меня уже работает один небольшой компонент, поэтому я доволен настройкой общего реагирования.
Я хочу использовать компонент реагирования для отображения API модели coffee_roasts
.
приложение / JavaScript / пакеты / AllRoasts.jsx
import React from 'react'
import ReactDOM from 'react-dom'
import Roasts from 'Roasts'
document.addEventListener('turbolinks:load', function() {
var element = document.getElementById("all-roasts-component");
ReactDOM.render(<Roasts />, element);
});
приложение / JavaScript / Жаркое / index.jsx
import React, { Component } from 'react';
import axios from 'axios';
class AllRoasts extends Component {
constructor(props){
super(props)
this.state = {
coffee_roast: []
}
}
componentDidMount() {
axios.get('/coffee_roasts.json')
.then(response => {
console.log(response)
this.setState({
coffee_roast: response.data
})
})
.catch(error => console.log(error))
}
render() {
return (
<div className="roasts-components">
{this.state.coffee_roast.map( list => {
return (
<div className="all-roasts" key={coffee_roast.id}>
<h4>{coffee_roast.name}</h4>
<p>{}</p>
</div>
)
})}
</div>
)
}
}
export default AllRoasts;
Вид / coffee_roast / index.html.erb
<%= javascript_pack_tag("AllRoasts") %>
<%= render "partials/mainnav" %>
<h1>Coffee Roasts</h1>
<!--React Component-->
<div id="all-roasts-component"></div>
В консоли у меня ошибка
Не удалось загрузить ресурс: сервер ответил со статусом 403 ()
Однако под data:
я вижу 9 записей API.
Я также вижу в консоли ошибку
Uncaught ReferenceError: coffee_roast не определен
Хотя я не уверен, где coffee_roast должен быть определен в этом контексте. Он работает с использованием обычного метода Rails @coffee_roast
.
Я очень новичок в React и буквально только начинаю учиться, поэтому могу сделать очень глупую базовую ошибку, но не могу ее исправить.