ブロックのリストをページコンポーネントの子としてレンダリングしようとしています。これまでのところ、私はブロックのconsole.logを見ているだけです。コンソールでデータが正常であっても、ブロックはレンダリングされません。Reactは子をレンダリングせずコンソールログを正しく返します
私はあなたがmap
代わりのforEach
を使用する必要があり、間違った
var Block = React.createClass({
render: function() {
var block = this.props.item;
return (
<div className="row" key={block.id}>
<p>{block.name}</p>
</div>
);
}
});
var Page = React.createClass({
getInitialState: function() {
return {
page: '',
blocks: [],
newBlockValue: ''
};
},
componentDidMount: function() {
this.serverRequest = $.get("/pages/"+this.props.page+".json", function (result) {
this.setState({
page: result.page,
blocks: result.blocks
});
}.bind(this));
},
componentWillUnmount: function() {
this.serverRequest.abort();
},
render: function() {
var page = this.state.page;
return (
<div className="row">
{this.state.blocks.forEach(function(block){
console.log(block);
<Block key={block.id} item={block} />
})}
<form id="add_new_block">
<input type="text" id="new_block" value={this.state.newBlockValue} onChange={this.handleChange} autoComplete="off"/>
<input type="submit" value='Save' onClick={this.createBlock}/>
</form>
</div>
);
}
あなたのコンソールですべてのエラーを? – erichardson30
あなたのフォームは現れていますか?Object {id:8、name: "foo"} –
あなたのフォームは現れていますか? – erichardson30