#javascript #reactjs #relay #graphql-js
#javascript #reactjs #реле #graphql-js
Вопрос:
Итак, я пытаюсь выяснить Relay.js . Я создал простое приложение, которое в основном имитирует пример на веб-сайте Relay. Однако, хотя мне удалось избавиться от ошибок в обеих консолях (node и chrome), мой компонент не получает фрагменты, которые я указал в Raley.Контейнер. Я понятия не имею, в чем может быть проблема, поскольку мое приложение выглядит очень похоже на пример Relay.
Обратите внимание, что метод map on this.props.companies
недоступен, поскольку это объект с 1 свойством, то есть __dataId__ .
Первый компонент
class App extends React.Component {
render() {
return (
<div>
{this.props.companies.map((comapny => <Company company={company} />))}
</div>
);
}
}
export default Relay.createContainer(App, {
fragments: {
companies: () => Relay.QL`
fragment on Companies {
companies { ${Company.getFragment('company')} }
}
`,
},
});
Второй компонент
class Company extends React.Component {
render() {
return (
<div>
<h1>{this.props.comapany.name}</h1>
</div>
);
}
}
export default Relay.createContainer(Company, {
fragments: {
company: () => Relay.QL`
fragment on Company {
__id,
name
}
`,
},
});
И мой маршрут
class AppHomeRoute extends Relay.Route {
static routeName = 'Comapnies';
static queries = {
companies: (Component) => Relay.QL`
query {
companies { ${Component.getFragment('companies')} }
}
`,
};
}
Есть идеи?
Комментарии:
1. У меня аналогичная проблема. У меня есть список событий, которые я получаю с исполнителями, играющими на этом мероприятии, я нажимаю на исполнителя, он показывает информацию об исполнителе и события, в которых будет участвовать этот исполнитель, но первое событие, на которое я нажимаю, не будет отображаться как событие исполнителя, поскольку оно только возвращается
__dataID__
.2. Есть какое-либо решение для этого?
3. @ChrisHarrison Мне удалось решить одно из этих проблем, но я не могу исправить другое, которое появилось .. у вас?