Я совершенно новичок в ReactJS и только что закончил свой учебник, и теперь я работаю с React. Я начал с того, что просто сделал эхо-файл PHP «Hello», а React.js получил этот ответ и отобразил его на веб-сайте, но, похоже, он вообще не работает.
Мой PHP-код:
<?PHP
echo "Hello!";
?>
Мой код React.js:
const [data, newData] = useState(null);
useEffect(() => {
fetch(//MY .php file link, NOT API just a php file echoing hello)
.then((response) => response.json())
.then(newData);
});
return (
<>
<div>
{ data }
</div>
</>
);
В первом .then()
из fetch
, когда вы пытаетесь извлечь содержимое JSON из ответа с помощью метода json()
, вы должны вместо этого использовать метод .text()
, поскольку вы возвращаете простую строку с вашего сервера, а не объект JSON. Как только вы вернули этот текст, вы можете обновить состояние во втором .then()
.
Не забудьте включить массив зависимостей в свой useEffect
, так как без него вы всегда будете запускать другой рендеринг после его запуска. Если вы добавите пустой массив в качестве зависимости, он будет загружаться только при загрузке страницы.
function App() {
const [data, newData] = useState(null);
useEffect(() => {
fetch(URL)
.then((response) => response.text())
.then((response) => newData(response));
}, []);
return <div>{data ? data : 'No data yet...'}</div>;
}