Estoy tratando de iterar a través de todas las claves en un hash, pero no se devuelve ningún resultado del bucle. Los resultados de console.log() son los esperados. ¿Alguna idea de por qué el JSX no se devuelve y se emite correctamente?
var DynamicForm = React.createClass({ getInitialState: function() { var items = {}; items[1] = { name: '', populate_at: '', same_as: '', autocomplete_from: '', title: '' }; items[2] = { name: '', populate_at: '', same_as: '', autocomplete_from: '', title: '' }; return { items }; }, render: function() { return ( <div> // {this.state.items.map(function(object, i){ // ^ This worked previously when items was an array. { Object.keys(this.state.items).forEach(function (key) { console.log('key: ', key); // Returns key: 1 and key: 2 return ( <div> <FieldName/> <PopulateAtCheckboxes populate_at={data.populate_at} /> </div> ); }, this)} <button onClick={this.newFieldEntry}>Create a new field</button> <button onClick={this.saveAndContinue}>Save and Continue</button> </div> ); }Object.keys(this.state.items).forEach(function (key) { Array.prototype.forEach() no devuelve nada; use .map() en su lugar:
Object.keys(this.state.items).map(function (key) { var item = this.state.items[key] // ...un atajo seria:
Object.values(this.state.items).map({ name, populate_at, same_as, autocomplete_from, title } => <div key={name}> <FieldName/> <PopulateAtCheckboxes populate_at={data.populate_at} /> </div>);