function App() {
const [ startupData, setStartupData ] = React.useState([]);
React.useEffect(() => {
fetch('http://localhost:8080/api/v1/startup')
.then(res => res.json())
.then(data => setStartupData(data))
.catch(err => console.error('Err: ', err));
}, []);
if (startupData?.length === 0) {
return <h1>Loading...</h1>;
}
return (
<div>
<table border="2">
<thead>
<tr>
<td>startup_id</td>
<td>startup_name</td>
<td>startup_descr</td>
<td>startup_price</td>
</tr>
</thead>
<tbody>
{startupData?.map(startup => (
<tr key={startup.startup_id}>
<td>{startup.startup_id}</td>
<td>{startup.startup_name}</td>
<td>{startup.startup_descr}</td>
<td>{startup.startup_price}</td>
</tr>
))}
</tbody>
</table>
</div>
)
}
Note how our original code did not need to import React to use JSX anymore! (But we would still need to import React in order to use Hooks or other exports that React provides.)
useEffect(() => {
fetch("http://localhost:5001/xxx")
.then(data => data.json())
.then(response => setData(response))
.catch(error => console.log(error))
}, []);
React component names must start with an uppercase letter
InputTweet
.querySelector
вместо этого создайте хук useState
храните в нем ваше значение и используйте переменную где хотите. При необходимых ситуациях можно и изменять это значениеconst [ text, setText ] = React.useState('Text1');
<h3 className='text'>{text}</h3>
setText('новый текст');
useState
или useEffect
то можно и не подключать Очень странным мне кажется такой подход.
import React, { useState } from 'react';
const SelectTaxon = (props) => {
const [isShown, setIsShown] = useState(true);
const toggleFIeldset = () => setIsShown(!isShown);
let selectTaxonCheckbox = props.selectTaxonData.map((input) => (
<InputCheckbox
id={input.id}
htmlFor={input.htmlFor}
title={input.title} />
))
return (
<div className={styles.taxon}>
<h2 className={styles.h2} onClick={toggleFIeldset}>Назва Таксону</h2>
{isShown &&
<fieldset className={styles.fieldset + ' ' + styles.fieldsetActive}>
<legend className={styles.legend}>Охоронний статус</legend>
{selectTaxonCheckbox}
<legend className={styles.legend + ' ' + styles.legendTaxon}>
Джерело даних
</legend>
</fieldset>
}
</div>
)
}
AnswersList/AnswersList.js
неправилно импортирван реактimport React from 'react';
const [num, setNum] = useState(0);
const [text, setText] = useState('no');
const [textUpper, setТextUpper] = useState('HELLO');
const changeState = () => {
setNum(num + 1);
setText('yes');
setТextUpper('BYE');
}
const [data, setData] = useState({
num: 0,
text: 'no',
textUpper: 'HELLO'
});
import React from 'react';
import { Route, Redirect, useLocation } from 'react-router-dom';
export const PrivateRoute = (props) => {
const token = localStorage.getItem("myToken");
const location = useLocation();
if (token) {
return <Route {...props} />
}
return (
<Redirect to={{ pathname: '/', state: { from: location } }} />
);
};
// Use Private Route
import { PrivateRoute } from './PrivateRoute';
import { Home } from './Home';
<PrivateRoute path="/home">
<Home />
</PrivateRoute>
Допустим Logo(js\css) перекинуть в папку Logo и тд
В свое время читала на хабре что некоторые разработчики создают одну папку Header, и сваливают туда все компоненты
import React, { useEffect } from 'react';
export default function GetContent() {
const GetData = () => {
...
};
useEffect(() => {
GetData().then(res => console.log(res));
}, []);
return (
<div>
</div>
)
}