回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我刚刚在这个stackoverflow帖子之后,将它添加到我的react文件夹:<code>re_path(r'^(?:.*)/?$', views.index),</code>中的url.py中:<a href="https://stackoverflow.com/questions/40826295/react-routing-and-django-url-conflict">react routing and django url conflict</a>。我在开发工具中的错误是:未知的URL方案</p>
<p><strong>然而,</strong>在我的情况下,这会产生问题。我将JSON发送到react的方法是通过url:<code>"api/leads,"</code>,该url现在不可访问。我如何为我的react URL提供一种与django URL和谐共存的方式?附件是我的<code>django urls.py, react--> App.js, urls.py, views.py, index.html, and DataFetching.py</code>(在这里您可以看到我如何从api发送数据)</p>
<p><strong>Django:url.py</strong></p>
<pre><code>from django.urls import path
from . import views
urlpatterns = [
path('api/lead/', views.LeadListCreate.as_view()),
]
</code></pre>
<p><strong>Django项目:url.py</strong></p>
<pre><code>from django.contrib import admin
from django.urls import path, include, re_path
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('leads.urls')),
path('', include('frontend.urls')),
]
</code></pre>
<p><strong>反应-->;url.py</strong></p>
<pre><code>from django.urls import path, re_path
from . import views
urlpatterns = [
#path('', views.index),
re_path(r'^(?:.*)/?$', views.index),
]
</code></pre>
<p>顺便说一句,我试图查看URL的文档(r^…),它没有告诉我如何导入它,而是说URL基本上与re_path相同;这可能是问题所在,但我仍然不知道解决办法</p>
<p><strong>反应-->;views.py</strong></p>
<pre><code>from django.shortcuts import render
def index(request):
return render(request, 'frontend/index.html')
</code></pre>
<p><strong>反应-->;App.js</strong></p>
<pre><code>import './index.css';
import BellIcon from './icons/bell.svg';
import MessengerIcon from './icons/messenger.svg';
import CaretIcon from './icons/caret.svg';
import PlusIcon from './icons/plus.svg';
import DataFetching from "../DataFetching";
import DropdownMenu from "../DropDown";
import React, { useState } from 'react';
import {
BrowserRouter as Router,
Switch,
Route,
Link
} from "react-router-dom";
function App() {
return (
<Router>
<div className="App">
<Navbar>
<NavItem icon={<PlusIcon />} />
<NavItem icon={<BellIcon />} />
<NavItem icon={<MessengerIcon />} />
<NavItem icon={<CaretIcon />}>
<h1> Hello World </h1>
<DropdownMenu></DropdownMenu>
</NavItem>
</Navbar>
<Switch>
<Route path="/about">
<About />
<DataFetching />
</Route>
<Route path="/users">
<Users />
</Route>
<Route path="/">
<Home />
</Route>
</Switch>
</div>
</Router>
);
}
function Home() {
return <h2>Home</h2>;
}
function About() {
return <h2>About</h2>;
}
function Users() {
return <h2>Users</h2>;
}
</code></pre>
<p>(还有更多,但并不相关)</p>
<p><strong>DataFetching.js</strong></p>
<pre><code>import React, {useState, useEffect} from 'react'
import axios from 'axios'
function DataFetching() {
const [leads, setLeads] = useState([])
useEffect(() => {
axios.get("api/lead")
.then(res =>{
console.log(res)
setLeads(res.data)
})
.catch(err => {
console.log(err)
})
}, [])
return (
<div>
<ul>
{
leads.map(lead => <li key={lead.id}>{lead.name} says {lead.message}</li>)
}
</ul>
</div>
)
}
export default DataFetching
</code></pre>
<p><strong>index.html</strong></p>
<pre><code><!DOCTYPE html>
<html>
<head>
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;700;900&display=swap" rel="stylesheet">
<title>React App</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root">
<!-- React will load here -->
</div>
{% load static %}
<script src="{% static "frontend/main.js" %}"></script>
</body>
</html>
</code></pre>
<p>如果您有更好的方法将数据发送到我的react应用程序或其他有用的见解,请随时加入聊天</p>
<p>编辑进度:无,仍然没有关于这个问题从何处开始的线索,在这个主题上找不到任何有意义的东西</p>