Ben tepki vermek için oldukça yeni, birbiriyle çok benzer 6 giriş alanı oluşturmak için bir senaryo ile karşılaştım. Şu anda benJs - JSX uygulamasında giriş metin alanlarını dinamik olarak nasıl oluşturabilirim?
render() {
return (
<div>
<p>
<label htmlFor="answer1">Answer:</label><br/>
<input
type="text"
name="answer1"
id="answer1"
className="answer"
value={this.state.answer1}
onChange={this._handleChange}
/>
</p>
<p>
<input
type="text"
name="answer2"
id="answer2"
className="answer"
value={this.state.answer2}
onChange={this._handleChange}
/>
</p>
<p>
<input
type="text"
name="answer3"
id="answer3"
className="answer"
value={this.state.answer3}
onChange={this._handleChange}
/>
</p>
<p>
<input
type="text"
name="answer4"
id="answer4"
className="answer"
value={this.state.answer4}
onChange={this._handleChange}
/>
</p>
<p>
<input
type="text"
name="answer5"
id="answer5"
className="answer"
value={this.state.answer5}
onChange={this._handleChange}
/>
</p>
<p>
<input
type="text"
name="answer6"
id="answer6"
className="answer"
value={this.state.answer6}
onChange={this._handleChange}
/>
</p>
</div>
);
}
kod çirkin ve gereksiz, sınıfının benim hale yönteminde böyle bir şey var, ben dinamik olarak bu yapabileceğini zaten var mı?
Bu, dinamik olarak Yanıt bileşenlerinin listesini oluşturmak için [map] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map) işlevini kullanarak geliştirilebilir. https://thinkster.io/iterating-and-rendering-loops-in-react 'da olduğu gibi. Ancak bu durumda, 'key' özelliği, burada açıklandığı gibi ayarlanmalıdır (https://facebook.github.io/react/docs/multiple-components.html#dynamic-children) – Thylossus
@Thylossus I neyin harita üzerinde olabileceğini örneklemeden açık olmasa da ('map' kullanarak kısa bir örnek ekleyeceğiz) katılıyorum. – mfirry
"this.state.answers()' tablonuz var - "this.state.answers.map()' demek istiyorsunuz. Bu kişisel bir tercihtir, ancak JSX'te onu bir değişkene atamak yerine JSX'te de belirtmek yerine bunu satır içi olarak yazabilirim. Ayrıca kişisel tercih/duruma bağlıdır, ancak 'Cevap' sadece aynı dosyada tanımlanabilir ve eğer mantıklıysa (aslında bir 'ReactElement' döndürmek için yardımcı bir işlev) durum bilgisi olmayan bir işlevsel bileşen olabilir. – JMM