Я новичок в реакции, я хочу получить данные на сервере, чтобы он отправил страницу с данными клиенту.
Это нормально, когда функция getDefaultProps возвращает фиктивные данные, подобные этому {data: {books: [{..}, {..}]}}.
Однако не работает с кодом ниже. Код выполняется в этой последовательности с сообщением об ошибке "Невозможно прочитать свойства" книги "undefined"
- getDefaultProps
- возвращение
- извлечь
- {data: {books: [{..}, {..}]}}
Однако, я ожидаю, что код должен работать в этой последовательности
- getDefaultProps
- извлечь
- {data: {books: [{..}, {..}]}}
- возвращение
Любая идея?
statics: {
fetchData: function(callback) {
var me = this;
superagent.get('http://localhost:3100/api/books')
.accept('json')
.end(function(err, res){
if (err) throw err;
var data = {data: {books: res.body} }
console.log('fetch');
callback(data);
});
}
getDefaultProps: function() {
console.log('getDefaultProps');
var me = this;
me.data = '';
this.fetchData(function(data){
console.log('callback');
console.log(data);
me.data = data;
});
console.log('return');
return me.data;
},
render: function() {
console.log('render book-list');
return (
<div>
<ul>
{
this.props.data.books.map(function(book) {
return <li key={book.name}>{book.name}</li>
})
}
</ul>
</div>
);
}