Как отобразить текстовый файл
Получаю текст фетч запросом, но не записывается ответ в переменную что-бы отобразить его в компоненте
import React, { useEffect } from 'react'
import { Redirect, useParams } from 'react-router-dom'
import SyntaxHighlighter from 'react-syntax-highlighter';
import { docco } from 'react-syntax-highlighter/dist/esm/styles/hljs';
export default function GistsContent(props) {
const { gistName } = useParams();
const selectedGist = props.gistsFiles.find(item => item.filename === gistName)
let content;
useEffect(() => {
fetch(selectedGist.raw_url)
.then(res => res.text())
.then(data => content = data) // не записывает данные в переменную
}, [gistName])
if(!selectedGist) {
return <Redirect to='/'/>
}
return (
<div >
<SyntaxHighlighter language="javascript" className='gistContent' style={docco}>
{content}
</SyntaxHighlighter>
</div>
)
}
Ответы (1 шт):
Автор решения: Евгений Платов
→ Ссылка
import React, { useEffect, useState } from 'react'
...
const [content,setContent] = useState('');
useEffect(() => {
fetch(selectedGist.raw_url)
.then(res => res.text())
.then(data => setContent(text));
}, [gistName])