亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

React - For Loop 條件渲染 - 不工作和無限觸發

React - For Loop 條件渲染 - 不工作和無限觸發

拉丁的傳說 2023-04-20 10:51:32
我正在嘗試基于像這樣的可變類型在我的渲染中動態地多個項目<div>  <Multiple    multiple={props.multiple}    base1={props.base1}    exp1={props.exp1}  /></div>const Multiple = (props) => {    let result = "";    let wtf = "";    console.log("test"); // gets triggered    for(let i = 0; i < props.multiple; i++){        console.log("i: "+i); // gets triggered        result.concat("{props.base1} +"); // this doesn't work for some reason        wtf = i; // gets triggered    }    console.log("result: "+result); // result is blank    console.log("wtf:" +wtf);    return <span>{result}</span>;}問題 1:即使我進入了 for 循環,我的結果也沒有改變,我不明白為什么。另外因為我還不能讓它工作,我想問:如果我這樣做,我將 {props.base1} 作為字符串連接起來,當我在渲染中返回它時,它會顯示為“{ props.base1}" 還是會呈現為變量值?這是一個關于它應該是什么樣子的例子:base1 = abcmultiple = 2resulting render should look like:abc + abc +在渲染之前將我的道具連接成一個字符串會導致它看起來像這樣而不是上面的塊嗎?{props.base1} + {props.base1} +問題 2:還編輯,由于某種原因,<Multiple>組件中的所有內容都在無限觸發,我也不明白為什么會這樣
查看完整描述

3 回答

?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

您正在使用 concat,它不會更新原始字符串,而是創建一個新字符串。你可以做的是

let result = '';

for(let i = 0; i < props.multiple; i++) {

  console.log("i: "+i); // gets triggered

  result += `${props.base1} `; 

  wtf = i; // gets triggered

}

console.log(result);


就無限循環問題而言,究竟是什么props.muitlple?是數組還是字符串?如果是這樣,您應該將循環更改為

for(let i = 0; i < props.multiple.length; i++)


編輯:如果 props.multiple 是一個數字,i < props.multiple應該可以工作,您應該在組件中記錄該值并檢查一次。


查看完整回答
反對 回復 2023-04-20
?
holdtom

TA貢獻1805條經驗 獲得超10個贊

結果字符串未正確附加到


const Multiple = (props) => {

    let result = "";

    let wtf = "";

    

    for(let i = 0; i < props.multiple; i++){

        result += props.base1.toString() + "+"

   

    }

    console.log("result: "+result); 

    return <span>{result}</span>;

}

對于無限循環,我會在進入循環之前檢查它的值,以確保您的邊界設置正確。


// add this line before for loop

console.log(props.multiple)


查看完整回答
反對 回復 2023-04-20
?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

A。更改為result.concat('${props.base1} + ');(后背?。。?/p>

b. 我認為你傳遞給的道具可能有問題<Multiple ... >。再次檢查它們的值,也許記錄它們的值。


查看完整回答
反對 回復 2023-04-20
  • 3 回答
  • 0 關注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號