這是我的示例代碼。我只是試圖從反應文檔執行一些代碼。我試圖TI使得數字增加了一倍名單:ReactJs奇怪的錯誤:語法錯誤:意外的令牌(26:39)
import React, { Component } from 'react';
class ListKeysComponent extends Component {
constructor(props) {
super(props);
const numbers = [1, 2, 3, 5, 8, 13];
const doubled = numbers.map((number) => number * 2);
this.state = {
numbers: numbers,
doubled: doubled
};
}
render() {
if (this.state.value > 2000) {
return null;
}
// render numbers in list elements
return (
<div>
<ul>
for (var i = 0; i <= 5; i++) {
<li>{this.state.numbers[i]}</li>
}
</ul>
</div>
);
}
}
但我不理解爲什麼這個代碼生成此錯誤消息:
Failed to compile.
Error in ./src/ListKeysComponent.js
Syntax error: Unexpected token (26:39)
24 | <div>
25 | <ul>
> 26 | for (var i = 0; i <= 5; i++) {
| ^
27 | <li>{this.state.numbers[i]}</li>
28 | }
29 | </ul>
@ ./src/App.js 22:25-55
解決方案
render() {
if (this.state.value > 2000) {
return null;
}
var numrows = this.state.numbers.length;
var list = []
for (var i = 0; i < this.state.numbers.length; i++) {
list.push(<li>{this.state.numbers[i]}</li>);
}
return (
<div>
<ul>
{list}
</ul>
</div>
);
}
這不是JSX是如何工作的。 –
的可能的複製[環路內作出反應JSX(http://stackoverflow.com/questions/22876978/loop-inside-react-jsx) –
我知道這是行不通的^ _ ^。我已經創建了一個問題來解決它。我已閱讀鏈接的回覆@FelixKling。但我真的不知道如何解決。 – sensorario