которая открывается по path='/apps/:id'
так вот, если перейти на эту страницу, в еффекте вызывается запрос на id,
Все ок.
но если перейти на какую либо другую страницу, потом вернуться на такую же страницу по path='/apps/:id' но уже с другим id, то изначально из за длительного ответа от сервера, подтягиваются данные с первой id, а через секунд 10 обновляются по второй id
это реально пофиксить ?
у тебя не apollo graphql случайно?
нет
а с помощью чего запросы делаешь?
Мб это с dep list связано? Могу ошибаться
короч, у меня были подобные траблы, из-за реакт роутера, и адреса апишного, пришлось на разные репозитории кидать бек и фронт + была ошибка миксования данных, в общем габелла.
запросы axios, бэк весь на питоне
в dep list только token и location
там много нюансов, тебе надо создать сервер.жс как у меня в примере выше, Бекенд в отдельной репе сделай. У меня он выглядел так: index.js: const winston = require("winston"); const cors = require("cors"); const express = require("express"); const path = require("path"); const mongoose = require("mongoose"); const todos = require("./routes/todos"); const signUp = require("./routes/signUp"); const signIn = require("./routes/signIn"); const users = require("./routes/users"); const posts = require("./routes/posts"); const projects = require("./routes/projects"); const events = require("./routes/events"); const conversations = require("./routes/conversations"); const messages = require("./routes/messages") winston.exceptions.handle( new winston.transports.Console({colorize: true, prettyprint: true}), new winston.transports.File({filename: "uncaughtExceptions.log"}) ); process.on("unhandledRejection", (error) => { throw error; }); winston.add(new winston.transports.File({filename: "logfile.log"})); require("dotenv").config(); const app = express(); app.use(express.json()); app.use(express.urlencoded({ extended: false })); app.use(cors()); app.use("/api/todos", todos); app.use("/api/signup", signUp); app.use("/api/signin", signIn); app.use("/api/users", users); app.use("/api/posts", posts); app.use("/api/projects", projects); app.use("/api/events", events); app.use("/api/conversations", conversations); app.use("/api/messages", messages); app.get("/", (req, res) => { res.send("велком ту апи епта..."); }); const uri = process.env.ATLAS_URI; const PORT = process.env.PORT || 5000; app.listen(PORT, () => { console.log(Сервер запущен на порту: ${PORT}...); }); mongoose .connect(uri, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true, useFindAndModify: false, }) .then(() => console.log("MongoDB соединение установлено...")) .catch((error) => console.error("MongoDB соединение потеряно:", error.message)); package.json: "scripts": { "start": "node index.js" }, На клиенте: server.js: const path = require("path"); const express = require("express"); const app = express(); const port = process.env.PORT || 5000; app.use(express.static(path.join(__dirname, "build"))); app.get('*', function (req, res) { res.sendFile(path.join(__dirname, "./build/index.html")); }); app.listen(port, () => { console.log('Сервер запущен!'); }); package.json: "scripts": { "build": "react-scripts build", "install-client": "npm install", "client": "react-scripts start", "server": "node server.js", "heroku-postbuild": "npm run install-client && npm run build", "start": "node server.js && npm run client", "dev": "npm run client" },
спасибо, буду что то такое пробовать
а, ну еще сбилдить клиент надобно, видишь там статик билд в сервере
попробуй, я первый раз 4 дня деплоил
🤯
По сути можно же все файлы с Билда клиента скормить ноде в папку с сервером, или именно папку build надо кидать? Просто примерно такая же проблема у меня
честно хз, я вот такой финт ушами только придумал: бекенд отдельно на хероку, к нему с клиента идут запросы. Клиент и простецкий сервер указывающий на билд: app.use(express.static(path.join(__dirname, "build"))); app.get('*', function (req, res) { res.sendFile(path.join(__dirname, "./build/index.html")); }); И оно заработало...
Обсуждают сегодня