Как сделать компонент списка, чтобы перечислить мои содержательные сообщения

Я пытаюсь создать компонент списка, в котором перечислены примеры из моего проекта, поступающие из моей учетной записи Contentful. Я пытаюсь использовать компонент Static Query от Gatsby.

Я попытался ввести данные и сопоставить их с компонентом элемента списка, который в основном принимает заголовок и URL-адрес в качестве реквизита в компоненте ссылки следующим образом:

<li><Link to = {this.props.url} >{this.props.title}</Link></li>

Вот что у меня есть: (не обращайте внимания на опечатку в caseStudyTitile...)

import React from 'react'
import CaseItem from './caseItem/caseItem';

import { StaticQuery } from 'gatsby';

const Cases = () => (
    <StaticQuery
        query = {graphql`
        query CaseStudyQuery {
            allContentfulCaseStudy {
                edges {
                    node {
                        caseStudyTitile
                        slug
                    }
                }
            }
        }
        `}
        render = {data => (
            <div className = "Cases">
                <h3>Case Studies</h3>
                <ul>
                    {data.allContentfulCaseStudy.edges.map(node => (
                        <CaseItem 
                            title = {node.caseStudyTitile} 
                            url = {node.slug}/>
                    ))}
                </ul>
            </div>
        )}
    />

)

export default Cases

Я ожидаю получить список кликабельных ссылок на мои тематические исследования. Вместо этого я получаю список пустых элементов списка с пустыми ссылками.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
2
0
119
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Так как ребра имеют такую ​​форму [{ node: {...} }, { node: {...} }, ...] Вам нужно будет развернуть узел:

- data.allContentfulCaseStudy.edges.map(node => (
+ data.allContentfulCaseStudy.edges.map(({ node }) => (

Если вы используете gatsby 2.2.0 и выше, вы можете использовать этот быстрый запрос:

  query CaseStudyQuery {
    allContentfulCaseStudy {
      nodes {  // <--- short for `edges { node { ... } }`
        caseStudyTitile
        slug
      }
    }
  }

и доступ к нему намного проще, как data.allContentfulCaseStudy.nodes.map(node => ...)

Другие вопросы по теме