使用循环渲染 JSX 会出现语法错误
Using a loop to render JSX is giving me syntax errors
我正在尝试使用 for
循环在 JSX 中呈现一个重复块,这就是我的处理方式。
在我的组件中,但在我的渲染之外,我的函数如下:
tenCards = () => {
let block = [];
/* Outer loop for container */
for(var i = 0; i < 11; i+2){
block.push(
<div className="container">
<Card id={i}/>
<Card id={i+1}/>
</div>
);
}
return block;
}
在我的渲染中,我只是调用 {this.tenCards()}
。我遇到了语法错误,现在编译成功了,但是页面从未加载,我得到了
aw snap chrome error.
我只是做错了for循环吗?
在用 i+=2 切换 i+2 之后,它确实向前移动了一步,但是 JSX 说 属性 值必须是表达式或文本,所以 id={i} 不起作用并且引号它周围使它成为一个字符串,出于某种原因我无法用 \
.
转义引号
我修复了 属性 需要像这样的字符串的错误
<Card id={`${i}`} />
所以 JSX 知道它是一个 JavaScript 表达式,它给出了 0 和 10 之间的数字,后来 `` 在数字周围放置了引号使其成为一个字符串。如果您知道更简单的方法,请发表评论,但这对我有用。
问题出在 for
循环中。将 i + 2
替换为 i += 2
.
您可以尝试这样的操作:
const numbers = [2, 4, 6, 8, 10];
const cards = numbers.map((i) =>
<div className="container">
<Card id={i}/>
<Card id={i+1}/>
</div>
);
更多信息:https://reactjs.org/docs/lists-and-keys.html#rendering-multiple-components
我修复了 属性 需要像这样的字符串的错误:
<Card id={`${i}`} />
这样 JSX 就知道它是一个 JavaScript 表达式,它给出了一个介于 0 和 10 之间的数字,后来 `` 在数字周围加上引号使其成为一个字符串。如果您知道更简单的方法,请发表评论,但这对我有用。
我正在尝试使用 for
循环在 JSX 中呈现一个重复块,这就是我的处理方式。
在我的组件中,但在我的渲染之外,我的函数如下:
tenCards = () => {
let block = [];
/* Outer loop for container */
for(var i = 0; i < 11; i+2){
block.push(
<div className="container">
<Card id={i}/>
<Card id={i+1}/>
</div>
);
}
return block;
}
在我的渲染中,我只是调用 {this.tenCards()}
。我遇到了语法错误,现在编译成功了,但是页面从未加载,我得到了
aw snap chrome error.
我只是做错了for循环吗?
在用 i+=2 切换 i+2 之后,它确实向前移动了一步,但是 JSX 说 属性 值必须是表达式或文本,所以 id={i} 不起作用并且引号它周围使它成为一个字符串,出于某种原因我无法用 \
.
我修复了 属性 需要像这样的字符串的错误
<Card id={`${i}`} />
所以 JSX 知道它是一个 JavaScript 表达式,它给出了 0 和 10 之间的数字,后来 `` 在数字周围放置了引号使其成为一个字符串。如果您知道更简单的方法,请发表评论,但这对我有用。
问题出在 for
循环中。将 i + 2
替换为 i += 2
.
您可以尝试这样的操作:
const numbers = [2, 4, 6, 8, 10];
const cards = numbers.map((i) =>
<div className="container">
<Card id={i}/>
<Card id={i+1}/>
</div>
);
更多信息:https://reactjs.org/docs/lists-and-keys.html#rendering-multiple-components
我修复了 属性 需要像这样的字符串的错误:
<Card id={`${i}`} />
这样 JSX 就知道它是一个 JavaScript 表达式,它给出了一个介于 0 和 10 之间的数字,后来 `` 在数字周围加上引号使其成为一个字符串。如果您知道更简单的方法,请发表评论,但这对我有用。