Получение «Неожиданного токена» при возврате в рендере
render() {
return (
Не могу понять, почему это происходит. У меня фигурные скобки в функции внутри рендера?!
export class NoteList extends React.Component {
constructor(props) {
super(props);
state = {cnt: 0}
}
componentDidMount() {
this.state.cnt = 0;
}
appendNoteToDiagram = (note, index) => {
this.state.cnt++;
let xpos = this.state.cnt;
let ypos = this.state.cnt * 60;
return (<Note x-position = "{xpos}" y-position = "{ypos}" width = "100"
height = "50" stroke-color = "red" fill-color = "red" text = "
{note.text}">);
}
render() {
return ( // <<<<<< Error Here
{ this.props.notes.map((note, index) => (
return appendNoteToDiagram(note, index)
))}
);
}
}
Что такое фактический неожиданный токен? Можете ли вы предоставить полную ошибку, пожалуйста, и на какой символ/строку она ссылается?
У тебя там лишние {} брекеты, как мне кажется. Если вы хотите вернуть массив, просто верните его. Нет необходимости в (, который ничего не делает, или {, который, вероятно, пытается запустить литерал объекта. Вам не нужно использовать {}, чтобы покинуть <jsx> землю, если вы не используете jsx.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Поместите этот JSX внутрь div.
<div>
{ this.props.notes.map((note, index) => (
return appendNoteToDiagram(note, index)
))}
</div>
Или <React.Fragment>
React.Fragment также лучше.
Вы используете ( вместо {, что не имеет смысла, потому что вы вызываете функцию. В идеале из-за сигнатуры функции appendNoteToDiagram я бы изменил это:
return (
{ this.props.notes.map((note, index) => (
return appendNoteToDiagram(note, index)
))}
);
К этому:
return (<>{this.props.notes.map(appendNoteToDiagram))}</>)
Можете ли вы включить полное сообщение об ошибке? «Неожиданный токен '(' в строке 10» и «Неожиданный токен '{' в строке 11» в этом случае будут иметь значение