因此,我有一个组件,该组件必须从0循环到输入的值(以prop形式给出)
if (props.number !== "" && props.toPow !== "") {
for (let i; i < props.toPow; i++) {
return (
<div>
<span>
{props.number} ^ {i} = {Math.pow(props.number, i)}
</span>
</div>
);
}
} else {
return <h3>Fill in all fields</h3>;
}
但是React说:
错误:Component(...):渲染未返回任何内容。这通常 表示缺少返回语句。或者,什么也不渲染,返回 空。
答案 0 :(得分:2)
只需尝试:)。希望它能起作用... 我添加了一个空数组,然后将html插入其中,然后返回整个数组。
if (props.number !== "" && props.toPow !== "") {
let arr = []
for (let i = 0; i < props.toPow; i++) {
arr.push(
<div key={i}>
<span>
{props.number} ^ {i} = {Math.pow(props.number, i)}
</span>
</div>
)
}
return arr
} else {
return <h3>Fill in all fields</h3>
}
答案 1 :(得分:2)
类似的事情会起作用
if (props.number !== "" && props.toPow !== "") {
let powers = Array.from({length:props.toPow}, (_, i) => (
<span>
{props.number} ^ {i} = {Math.pow(props.number, i)}
</span>
));
return <div>{powers}</div>;
} else {
return <h3>Fill in all fields</h3>;
}
那会产生
<div>
<span> .... </span>
<span> .... </span>
<span> .... </span>
</div>
如果需要
<div>
<span> .... </span>
</div>
<div>
<span> .... </span>
</div>
<div>
<span> .... </span>
</div>
那你就可以做
if (props.number !== "" && props.toPow !== "") {
let powers = Array.from({length:props.toPow}, (_, i) => (
</div>
<span>
{props.number} ^ {i} = {Math.pow(props.number, i)}
</span>
</div>
));
return <>{powers}</>;
} else {
return <h3>Fill in all fields</h3>;
}