问题:如何通过React-Router的Link组件传递prop或单个值(如_id),并在端点捕获它?
这就是我的意思:假设我们在页面/ a上.链接将用户带到/ b.就这样<Link to='/b'>
.现在,我需要通过链接传递_id,从/ a到/ b.
<Link to='/b' params={_id}>blah blah</Link>
Run Code Online (Sandbox Code Playgroud)
我想要传递的id是Link组件嵌套在其中的对象的属性.
我params={}
在另一个StackOverflow线程中找到了这种语法.我的代码编译没有破坏,所以这可能意味着它工作?但是,我不确定如何在端点处检索此传递的值.
任何帮助将不胜感激.
React 支持类和函数组件。所有 React 文件import React from ‘react’
的顶部都有一个声明。当创建一个类组件(像这样class MyClassComponent extends React.Component ...
:)时,会明确提到这个类实例从哪个类扩展。然而,在声明一个函数组件 ( const MyFunctionComponent = () => ()
) 时,并没有明确说“嘿,顺便说一下,这是一个 React 组件。”
就我们所知,这可能是纯 JavaScript 中的函数。那么,React 如何将函数识别为函数组件?
我有...
Node.js / express服务器,当对某些路由发出请求时,该服务器提供文件。
反应页面以调用后端请求数据来填充页面。
我在前端使用react-router v4。每当我导航到不在确切路径上的路线并重新加载页面时,都会收到404错误。我了解为什么这行不通;浏览器向由react-router处理的路径发出请求,由于它在服务器上找不到该路由,因此得到404。
我正在寻找解决此问题的方法。
// BrowserRouter imported as Router
<Router>
<Route exact path='/main' component={Main} />
<Route path='/sub1' component={SubOne} />
<Route path='/sub2' component={SubTwo} />
</Router>
Run Code Online (Sandbox Code Playgroud)
当我/main
在浏览器中转到时,<Main />
将呈现。都说里面<Main />
,有链接/sub1
和/sub2
分别。我点击/sub2
。组件和页面内容的渲染不会失败。然后,我偶然或有意刷新页面(例如,组件Sub2将状态提升到Main)。
如何避免在刷新后收到404?如果我使用React-Router,如何在刷新后获得呈现“我”的页面/组件?
正在开发一个简单的刽子手游戏,我试图用 来捕捉用户输入keyup()
,但是当我将它登录到控制台时,我意识到有些东西无法正常工作……这是我的代码:
$(document).keyup(function(e) {
userInput = e.value;
console.log(userInput);
});
Run Code Online (Sandbox Code Playgroud)
我也试过这样做,但它也不起作用。
$(document).keyup(function(e) {
userInput = $(this).val();
console.log(userInput);
});
Run Code Online (Sandbox Code Playgroud)
哦,顺便说一下,userInput 是一个全局变量。
我无法让 fetch() API 工作。我强烈地感觉到我做错了什么。
\n\n我有一个在 PORT 3005 上运行的简单 Express 服务器,它以 json 格式返回数据,还有一个在 PORT 3000 上运行的 React.js 客户端。
\n\n我正在向fetch()
发出 GET 请求,http://localhost:3005/api
但在控制台上收到这些消息
\n\n\n跨源请求被阻止:同源策略不允许读取位于http://localhost:3005/api 的远程资源处的远程资源。\n(原因:CORS 标头 \xe2\x80\x98Access-Control-Allow-Origin\xe2\ x80\x99 缺失)。
\n\n类型错误:尝试获取资源时出现网络错误。
\n
我添加了一个标题并阅读了类似的问题,但我仍然无法让它工作,而且我仍然收到相同的消息。
\n\n我究竟做错了什么?(这是代码)
\n\nlet url = \'http://localhost:3005/api\';\n fetch(url, { \n method: \'GET\',\n headers:{\n \'Access-Control-Allow-Origin\': \'*\',\n \'Access-Control-Allow-Credentials\':true,\n \'Access-Control-Allow-Methods\':\'POST, GET\'\n }\n }).then(response => response.json)\n .then(data => console.log(data))\n
Run Code Online (Sandbox Code Playgroud)\n\n我过去多次遇到过这个问题,通常只使用 axios。但这一次,我想要得到fetch()
上班……!
我有一个模态组件和一个表单组件。Modal 是一个功能组件,而 Form 是一个类组件,因为那是我处理表单提交的地方。
Modal [父级] 将其所有 props 传递给 Form。Modal 的 props 对象中有三个值,两个字符串和一个数字。
字符串值符合预期,但数字(用作 ID)为 1,而不是预期的 10(在本例中)。这是一个问题,因为我试图将该值保存到状态中,但没有获得我期望的值。
奇怪的是,如果我console.log(this.props)
在里面render()
,props 对象会被打印两次;第一次数字值为 1,第二次为 10。这发生在组件的初始渲染时,状态没有发生任何更改。
为什么会发生这种情况以及如何获得我期望的实际值?
这是模态组件。
import React from 'react';
import Form from './Form';
const Modal = (props) => (
<div className="modal fade" id="createWorkitem" tabIndex="-1" role="dialog" aria-labelledby="createWorkitemLabel" aria-hidden="true">
<div className="modal-dialog" role="document">
<div className="modal-content">
<div className="modal-header">
<h5 className="modal-title" id="createWorkitemLabel">
{/* 10 */}
Item #{ props.issueNumber }
</h5>
<button type="button" className="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div className="modal-body"> …
Run Code Online (Sandbox Code Playgroud) 假设我有一条快速路线接受数字,将它们全部加起来并返回总数.
通常我会做这样的事情
app.get('/add/:num1/:num2/:num3', (req, res) => {
// access and parseInt these values from req.params
// do operations
// return total
})
Run Code Online (Sandbox Code Playgroud)
但是,在这种情况下,路由可以处理的参数数量限制为3(或者硬编码的参数数量很多).如果我想处理无限期或未知数量的参数怎么办?在这种情况下,数字?
最终,我希望路由能够处理2,3,5,10或20个数字(如果这是用户发送的数字).
我怎样才能做到这一点?
javascript ×6
reactjs ×5
react-router ×2
cors ×1
express ×1
fetch ×1
hyperlink ×1
jquery ×1
keyup ×1
node.js ×1
react-props ×1
user-input ×1