Вы хотите сделать GET-запрос к вашему бэкэнду для асинхронной загрузки данных. Если вы хотите получить данные при первом монтировании компонента App
, вы можете использовать fetch
в componentDidMount
для вызова конечной точки вашего бэкенда. Вот пример с loading
отступлением и основной обработкой ошибок:
class App extends Component {
state = {
data: [],
loading: true,
error: false
}
...
componentDidMount() {
// Pick whatever host/port your server is listening on
fetch('localhost:PORT/api/listitems')
.then(res => { // <-- The `results` response object from your backend
// fetch handles errors a little unusually
if (!res.ok) {
throw res;
}
// Convert serialized response into json
return res.json()
}).then(data => {
// setState triggers re-render
this.setState({loading: false, data});
}).catch(err => {
// Handle any errors
console.error(err);
this.setState({loading: false, error: true});
});
}
render() {
return (
Grocery List
// The app will render once before it has data from the
// backend so you should display a fallback until
// you have data in state, and handle any errors from fetch
{this.state.loading ? Loading...
: this.state.error ? Error during fetch!
: (
this.state.data.map(item => - {item}
)
)}
);
}
}
fetch
не будет отклонять состояние ошибки HTTP (404, 500), поэтому первый .then
немного странно .catch
зарегистрирует ответ здесь со статусом, но если вы хотите увидеть сообщение об ошибке с сервера, вам нужно сделать что-то вроде этого:
if (!res.ok) {
return res.text().then(errText => { throw errText });
}
См. См. . https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch для получения дополнительной информации или изучения других библиотек извлечения данных, таких как axios
.
Если я понимаю правильно, что Вы хотите что-то вроде этого:
select
*
from
a
left outer join c
inner join b on c.bID = b.ID
on a.cID = c.ID
Уверенный можно сделать соединение в том же запросе:-
FROM TableA a
INNER JOIN Table b ON a.TableA_ID = b.TableA_ID
LEFT OUTER JOIN Table c ON a.TableA_ID = c.TableA_ID
Можно использовать и внутренние и внешние объединения в том же запросе, но их порядок важен. Посмотрите этот вопрос:
Внутреннее объединение и внешнее объединение; находится порядок таблиц в от важного?
Порядок не должен иметь значения.
Вот Схема Венна из Викисклада. Независимо от порядка запроса Вы собираетесь получить перекрытие между кругами A и B с пустыми указателями для столбцов C, где C не перекрывает комбинацию A и B.
От Вашего продолжения это кажется на желание 'условного' внутреннего объединения.
По существу, "Если A и B имеют запись, ВНУТРЕННЕЕ ОБЪЕДИНЕНИЕ к C".
Однако Вы, вероятно, сталкиваетесь с проблемой, где ВНУТРЕННЕЕ ОБЪЕДИНЕНИЕ в Вашем запросе не показывает записи, где A не имеет никаких записей, связанных с B или C. Если они будут в том же 'объеме', то INNERS будет всегда работать, Вы не можете условно сделать, чтобы они работали на основе их порядка.
Или необходимо использовать два ЛЕВЫХ соединения и отфильтровать записи, которые Вы не хотите или альтернативно используете Представление для обзора ВНУТРЕННЕГО ОБЪЕДИНЕНИЯ.
Напр. ЛЕВОЕ СОЕДИНЕНИЕ vw_MyView НА ID=vw_MyView. A_ID
Где MyView имеет таблицы B и C с Вашим ВНУТРЕННИМ ОБЪЕДИНЕНИЕМ. Это позволит ВНУТРЕННЕМУ ОБЪЕДИНЕНИЮ быть выполненным в представлении, и затем Вы можете ОСТАВЛЕННЫЙ СОЕДИНЯТЬ с результатами.
Да Вы можете сделать и являетесь тем же запросом и да, порядок важен.
Проблемой не может конкретно быть соединение (Anthony показал Вам, как сделать wht, который Вы описали нам).Remember, что у людей часто есть проблемы с помощью оставленный соединения becasue, они пытаются вставить что-то, где пункт referncing таблица на правой стороне соединения, таким образом преобразовывающего его от внешнего объединения до внутреннего объединения (если Вы не смотрите для тех записей, где второе поле таблицы является пустым, который дает Вам записи в первой таблице а не второй).
Мы могли помочь Вам лучше, если мы говорим, что фактический код Вы использовали это wasn; t пропередача по каналу желаемых результатов, а также некоторых демонстрационных данных и демонстрационных результатов.