#javascript #reactjs
#javascript #reactjs
Вопрос:
Во время тестирования я столкнулся с этой ошибкой. Я прочитал документы React и продолжил использовать .map, => и
import React from "react";
import ReactDOM from "react-dom";
import { render } from "react-dom";
import "./styles.css";
class App extends React.Component {
constructor() {
super();
this.state = {
ideas: [
{
title: "Titanic",
director: [
{
James: "Cameron"
}
],
year: 1998
},
{
title: "Star Wars",
director: [
{
George: "Lucas"
}
],
year: 1974
},
{
title: "Alien",
director: [
{
Ridley: "Scott"
}
],
year: 1985
}
]
};
}
render() {
const { ideas } = this.state;
return (
<div>
<h1> hi </h1>
{ideas.map((item, index) => {
<li key={index}>{item.title}</li>;
})}
</div>
);
}
}
render(<App />, document.getElementById("root"));
Комментарии:
1. Это потому, что вы ничего не возвращаете. Либо используйте круглые скобки, либо добавьте явный возврат между фигурными скобками. Синтаксис см. в MDN
2. Ваши элементы <li> не обернуты тегом <ul> или <ol>
Ответ №1:
Обратный вызов, переданный в .map()
, должен вернуть <li>
:
<div>
<h1> hi </h1>
{ideas.map((item, index) => {
return (<li key={index}>{item.title}</li>);
// ^^^^^^
})}
</div>
Или неявный возврат :
<div>
<h1> hi </h1>
{ideas.map((item, index) => (<li key={index}>{item.title}</li>))}
</div>
Комментарии:
1. Спасибо за разъяснение. Я не понимал, что вы должны заключить li в круглые скобки для неявного возврата