kzen.dev
  • Frågor
  • Taggar
  • Användare
Meddelanden
Belöningar
Registrering
När du har registrerat dig kommer du att få information om svar och kommentarer på dina frågor.
Logga in
Om du redan har ett konto loggar du in för att kontrollera nya meddelanden.
Det kommer att finnas belöningar för frågor, svar och kommentarer.
Mer
Källa
Redigera
Ben Roberts
Ben Roberts
Question

Slinga i React JSX

Jag försöker göra något som liknar följande i React JSX (där ObjectRow är en separat komponent):

<tbody>
    for (var i=0; i < numrows; i++) {
        <ObjectRow/>
    } 
</tbody>

Jag inser och förstår varför detta inte är giltigt JSX, eftersom JSX mappar till funktionsanrop. Men eftersom jag kommer från mallland och är ny i JSX är jag osäker på hur jag skulle uppnå ovanstående (lägga till en komponent flera gånger).

1126 2014-04-05T05:29:28+00:00 3
 ravibagul91
ravibagul91
Redigerad fråga 2019ör maj 2019 в 9:51
Programmering
javascript
reactjs
Popular videos
REACT JSX Explained - What is JSX in React JS?
REACT JSX Explained - What is JSX in React JS?
för 3 år sedan
ReactJS Tutorial - 8 - JSX
ReactJS Tutorial - 8 - JSX
för 4 år sedan
How to loop in React JSX?
How to loop in React JSX?
för 3 år sedan
How To Write For Loop &amp; If Logic Statements Inside React JSX
How To Write For Loop & If Logic Statements Inside React JSX
för 3 år sedan
10 React Challenges: #2 Loop Over and Display Data with JSX
10 React Challenges: #2 Loop Over and Display Data with JSX
för 3 år sedan
How to loop in a React component JSX
How to loop in a React component JSX
för 2 år sedan
React Js Tutorial in Hindi #11 How to Loop Through Array (Lists and Keys)
React Js Tutorial in Hindi #11 How to Loop Through Array (Lists and Keys)
för 4 år sedan
Урок 4. React JS. Основы. Как работает JSX
Урок 4. React JS. Основы. Как работает JSX
för 4 år sedan
ReactJS Tutorial - 17 - List Rendering
ReactJS Tutorial - 17 - List Rendering
för 4 år sedan
ReactJS Tutorial - 13 - Event Handling
ReactJS Tutorial - 13 - Event Handling
för 4 år sedan
🚀 Write Code 10X Times Faster with React JSX Autocomplete Feature in VS Code Editor in 2021
🚀 Write Code 10X Times Faster with React JSX Autocomplete Feature in VS Code Editor in 2021
för 2 år sedan
Learn React #5: Maps and Loops in JSX
Learn React #5: Maps and Loops in JSX
för 2 år sedan
The Power Of JSX | Learn React For Beginners Part 2
The Power Of JSX | Learn React For Beginners Part 2
för 2 år sedan
React JS Быстрый Курс 2020
React JS Быстрый Курс 2020
för 4 år sedan
React js Modal Tutorial Using Bootstrap 5 | Dynamic Modal Bootstrap 5 |React js Popup modal
React js Modal Tutorial Using Bootstrap 5 | Dynamic Modal Bootstrap 5 |React js Popup modal
för 2 år sedan
React CreateElement - NO JSX
React CreateElement - NO JSX
för 4 år sedan
Знакомство с React #3: JSX
Знакомство с React #3: JSX
för 6 år sedan
React tutorial for beginners #9 JSX with Reactjs
React tutorial for beginners #9 JSX with Reactjs
för 2 år sedan
How to Build Tetris in React - GameDev Tutorial (with React Hooks!)
How to Build Tetris in React - GameDev Tutorial (with React Hooks!)
för 3 år sedan
JSX на практических примерах в React.js. ItGid.info
JSX на практических примерах в React.js. ItGid.info
för 1 år sedan
10 React Challenges: #1 Display Simple Data with JSX
10 React Challenges: #1 Display Simple Data with JSX
för 3 år sedan
JSX In React.js | What is JSX in React and why JSX is used ? in Hindi 2021
JSX In React.js | What is JSX in React and why JSX is used ? in Hindi 2021
för 2 år sedan
If and Else Statement In JSX - React For Beginners [16]
If and Else Statement In JSX - React For Beginners [16]
för 4 år sedan
REACT 101] - EP.3 - React Hooks (useState) กับ JSX condition render / loop
REACT 101] - EP.3 - React Hooks (useState) กับ JSX condition render / loop
för 3 år sedan
React Website Tutorial - Beginner React JS Project Fully Responsive
React Website Tutorial - Beginner React JS Project Fully Responsive
för 2 år sedan
« Föregående
Nästa »
Den här frågan har 1 svar på engelska, för att läsa dem logga in på ditt konto.
Solution / Answer
Sophie Alpert
Sophie Alpert
2014ör april 2014 в 5:39
2014-04-05T05:39:46+00:00
Mer
Källa
Redigera
#24221330

Tänk på det som om du bara anropar JavaScript-funktioner. Du kan inte använda en for-slinga där argumenten till ett funktionsanrop skulle hamna:

return tbody(
    for (var i = 0; i < numrows; i++) {
        ObjectRow()
    } 
)

Se hur funktionen tbody skickas till en for-slinga som argument, och det är naturligtvis ett syntaxfel.

Men du kan skapa en array och sedan skicka in den som ett argument:

var rows = [];
for (var i = 0; i < numrows; i++) {
    rows.push(ObjectRow());
}
return tbody(rows);

Du kan använda i princip samma struktur när du arbetar med JSX:

var rows = [];
for (var i = 0; i < numrows; i++) {
    // note: we add a key prop here to allow react to uniquely identify each
    // element in this array. see: https://reactjs.org/docs/lists-and-keys.html
    rows.push(<ObjectRow key={i} />);
}
return <tbody>{rows}</tbody>;

För övrigt är mitt JavaScript-exempel nästan exakt det som JSX-exemplet omvandlas till. Lek lite med Babel REPL för att få en känsla för hur JSX fungerar.

 temporary_user_name
temporary_user_name
Redigerat svar 2019ör januari 2019 в 1:21
Babel · The compiler for next generation JavaScript
The compiler for next generation JavaScript
babeljs.io
1078
0
 Brigand
Brigand
2014ör april 2014 в 5:46
2014-04-05T05:46:35+00:00
Mer
Källa
Redigera
#24221332

Jag är inte säker på att detta fungerar i din situation, men ofta är map ett bra svar.

Om detta var din kod med for-slingan:

<tbody>
    for (var i=0; i < objects.length; i++) {
        <ObjectRow obj={objects[i]} key={i}>
    } 
</tbody>

Du skulle kunna skriva den så här med map:

<tbody>
    {objects.map(function(object, i){
        return <ObjectRow obj={object} key={i} />;
    })}
</tbody>

ES6-syntax:

<tbody>
    {objects.map((object, i) => <ObjectRow obj={object} key={i} />)}
</tbody>
Remco Haszing
Remco Haszing
Redigerat svar 2018ör mars 2018 в 2:41
818
0
 Etai
Etai
2015ör februari 2015 в 7:35
2015-02-02T19:35:02+00:00
Mer
Källa
Redigera
#24221334

Jag vet att det här är en gammal tråd, men du kanske vill kolla in React Templates, som låter dig använda jsx-mallar i react, med några få direktiv (t.ex. rt-repeat).

Ditt exempel, om du använde react-templates, skulle vara:

<tbody>
     <ObjectRow rt-repeat="obj in objects"/>
</tbody>
Rich Warrior
Rich Warrior
Redigerat svar 2019ör augusti 2019 в 9:01
26
0
Lägg till en fråga
Kategorier
Alla
Teknik
Kultur / fritid
Livet / Konst
Vetenskap
Professionell
Företag
Användare
Alla
Ny
Populära
1
工藤 芳則
Registrerad för 6 dagar sedan
2
Ирина Беляева
Registrerad för 1 vecka sedan
3
Darya Arsenyeva
Registrerad för 1 vecka sedan
4
anyta nuam-nuam (LapuSiK)
Registrerad för 1 vecka sedan
5
Shuhratjon Imomkulov
Registrerad för 1 vecka sedan
BG
CS
DA
DE
EL
ES
FR
ID
IT
JA
LT
NL
NO
PT
RO
SK
SL
SV
TR
ZH
© kzen.dev 2023
Källa
stackoverflow.com
under licens cc by-sa 3.0 med angivande av