[英]React project variable is not defined no-undef
這是我的第一個 React 項目,我遇到了這個問題:“./src/pages/EventsPage.jsx Line 64: 'events' is not defined no-undef”。 第 64 行是 {events}。變量事件在第 33 行聲明。但為什么沒有定義“事件”我不明白。
這是主要的反應組件。
import React, { Component } from "react";
import Events from "./../components/Events";
export default class EventsPage extends Component {
constructor(props) {
super(props);
this.state = {
eventData: {},
isLoggedin: true
};
}
componentDidMount() {
fetch("http://localhost:5999/events/" + this.props.match.params.userId, {
headers: {
"Content-Type": "application/json"
},
method: "GET",
mode: "cors",
credentials: "include"
})
.then(response => response.json())
.then(data => {
if (data["code"] === 200) {
console.log("OK");
this.setState({
eventData: data.events_data,
isLoggedin: true
});
let events = this.state.eventData.map(event => (
<Events
name={event.name}
image_url={event.image_url}
start_time={event.start_time}
end_time={event.end_time}
price={event.price}
age_from={event.age_from}
age_to={event.age_to}
x_coord={event.x_coord}
y_coord={event.y_coord}
status={event.status}
status_id={event.status_id}
members_total={event.members_total}
members_needed={event.members_needed}
owner_id={event.owner_id}
address={event.address}
/>
));
} else {
console.log("NOT OK");
this.setState({
eventData: data.events_data,
isLoggedin: false
});
}
});
}
render() {
return { events };
}
}
您不能在componentDidMount
方法中創建events
變量並在render
方法中訪問它。 您可以直接在 render 方法中創建events
變量,因為它會在您fetch
請求完成並更新狀態時重新運行。
還要確保在初始狀態下將eventData
設置為空數組而不是空對象,否則嘗試在其上使用map
方法時會出錯。
export default class EventsPage extends Component {
constructor(props) {
super(props);
this.state = {
eventData: [],
isLoggedin: true
};
}
componentDidMount() {
fetch("http://localhost:5999/events/" + this.props.match.params.userId, {
headers: {
"Content-Type": "application/json"
},
method: "GET",
mode: "cors",
credentials: "include"
})
.then(response => response.json())
.then(data => {
if (data["code"] === 200) {
console.log("OK");
this.setState({
eventData: data.events_data,
isLoggedin: true
});
} else {
console.log("NOT OK");
this.setState({
eventData: data.events_data,
isLoggedin: false
});
}
});
}
render() {
let events = this.state.eventData.map(event => (
<Events
name={event.name}
image_url={event.image_url}
start_time={event.start_time}
end_time={event.end_time}
price={event.price}
age_from={event.age_from}
age_to={event.age_to}
x_coord={event.x_coord}
y_coord={event.y_coord}
status={event.status}
status_id={event.status_id}
members_total={event.members_total}
members_needed={event.members_needed}
owner_id={event.owner_id}
address={event.address}
/>
));
return <>{events}</>;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.