Я впервые здесь, в React Js с Laravel Php Framework.
Проблема:
Можно ли получить каждый объект массива в мой API и получить его в каждом разделе. Потому что я получил ошибку в моей консоли, которая говорит
Uncaught TypeError: this.state.missions.map не является функцией. Я не знаю, в чем проблема, но главная цель - получить каждый объект, и цикл должен находиться в определенном разделе div в представлениях
Ex. Если я уже получаю объект массива миссии и храню
<div className="mission">
the object of mission must be here.
</div>
<div className="store">
the object of store must be here.
</div>
и другой объект. и т.д.
Мой контроллер:
public function index() {
$content_mission = DB::table('content_structure')
->where('content_pages','=','Home')
->where('content_section','=','Mission-Vision')
->where('status','=','Active')
->orderBy('content_id','Desc')
->limit(1)
->get();
$content_store = DB::table('content_structure')
->leftJoin('content_upload_assets','content_structure.content_id','=','content_upload_assets.cid')
->where('content_pages','=','Home')
->where('content_section','=','Store')
->where('status','=','Active')
->orderBy('content_id','Desc')
->limit(1)
->get();
return response()->json(
array(
'mission'=>$content_mission,
'store'=>$content_store)
);
}
Мои компоненты:
export default class Content extends Component {
constructor() {
super();
this.state = {
missions: [],
store: [],
}
}
componentWillMount() {
axios.get('/api/contents').then(response => {
this.setState({
missions: response.data
});
}).catch(error => {
console.log(error);
})
}
render() {
return (
<div>
// this div is for mission
<div className="mission-section">
<h1></h1>
<p></p>
<div className="container">
{this.state.missions.map(mission => <li>{mission.content}</li>)}
</div>
</div>
//this div is for store
<div className="Store"></div>
</div>
)
}
}
if(document.getElementById('app'))
{
ReactDOM.render(<Content/>, document.getElementById('app'));
}