#javascript #next.js
Вопрос:
итак, моя проблема в том, что у меня есть две переменные, называемые историями, одна из которых взята из библиотеки React, а другая в моем коде. Проблема в том, что он передает неправильную переменную stories, которая затем выдает мне ошибку: «Ошибка типа: stories.map не является функцией», потому что он принимает переменную React stories, а не переменную, которую я создал сам. Ниже приведена картинка, на которой я объясняю это с помощью графики.введите описание изображения здесь
import React, {Component} from "react";
import fetch from 'isomorphic-fetch'
import Error from 'next/error'
class Index extends React.Component {
static async getInitialProps() {
let stories
try {
const response = await fetch('https://node-hnapi.herokuapp.com/news?page=1')
stories = await response.json()
} catch (err) {
console.log(err)
stories = []
}
return { stories };
}
render() {
const {stories} = this.props
if(stories.length === 0) {
return <Error statusCode={503}/>
}
return (
<div>
<h1>hacker next</h1>
<div>
{stories.map(story => (
<h2 key={story.id}>{story.title}</h2>
))}
</div>
</div>
);
}
}
export default Index;
Комментарии:
1. Это две разные переменные. Переменная, которую вы хотите, является локальной для другой функции, вы не можете использовать эту переменную в
render
методе.2. Привет, спасибо за ваш ответ, но проблема заключалась в ссылке API. Я изменил его на jsonplaceholder.typicode.com/posts и это сработало. Таким образом, проблема заключалась в процессе извлечения.