Ich verwende React / JSX in meiner App, um das zu erreichen, was ich will, auch Lodash.
Ich muss ein Element je nach Bedingung einige Male wiederholen. Wie soll ich das machen
Hier ist das Element:
<span className="busterCards">♦</span>;
Und ich ordne es so zu:
let card;
if (data.hand === '8 or more cards') {
card = <span className='busterCards'>♦</span>;
}
In diesem Fall muss ich die Elementzeiten wiederholen 8
. Was sollte der Prozess mit Lodash sein?
javascript
reactjs
lodash
StillDead
quelle
quelle
new Array(8).join('<span className="busterCards">♦</span>');
?Antworten:
Bitte schön:
let card = []; _.times(8, () => { card.push(<span className="busterCards">♦</span>); });
Möglicherweise möchten Sie jedem
span
Element einen Schlüssel hinzufügen, damit sich React nicht über das Fehlen des Schlüsselattributs beschwert:let card = []; _.times(8, (i) => { card.push(<span className="busterCards" key={i}>♦</span>); });
Weitere Informationen
.times
finden Sie hier: https://lodash.com/docs#timesquelle
let card
, aber es wiederholt das Element nichtconst card = _(8).times(idx => <span key=${idx} className="busterCards">♦</span>);
Der kürzeste Weg, dies ohne externe Bibliotheken zu tun :
const n = 8; // Or something else [...Array(n)].map((e, i) => <span className="busterCards" key={i}>♦</span>)
quelle
let
in der Frage impliziert wird ).Array(3).slice().map(...)
dem nicht das gleiche Ergebnis erzielt wird . Siehe @ Jians Antwort unten als Ersatz.Array(n).map((e, i) => <span className="busterCards" key={i}>♦</span>)
Lösung ohne Lodash- oder ES6-Spread-Syntax:
Array.apply(null, { length: 10 }).map((e, i) => ( <span className="busterCards" key={i}> ♦ </span> ));
quelle
Verwenden von
_.times
: https://jsfiddle.net/v1baqwxv/var Cards = React.createClass({ render() { return <div>cards { _.times( this.props.count, () => <span>♦</span> ) }</div>; } });
quelle
Sie könnten es so machen (ohne lodash):
var numberOfCards = 8; // or more. if (data.hand >= numberOfCards) { var cards = []; for (var i = 0; i < numberOfCards; i++) { cards[i] = (<span className="busterCards">♦</span>); } }
quelle