小编jsd*_*v17的帖子

通过React-Router v4 <Link />传递道具

问题:如何通过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线程中找到了这种语法.我的代码编译没有破坏,所以这可能意味着它工作?但是,我不确定如何在端点处检索此传递的值.

任何帮助将不胜感激.

hyperlink reactjs react-router

37
推荐指数
4
解决办法
4万
查看次数

React 如何知道函数组件是否是 React 组件?

React 支持类和函数组件。所有 React 文件import React from ‘react’的顶部都有一个声明。当创建一个类组件(像这样class MyClassComponent extends React.Component ...:)时,会明确提到这个类实例从哪个类扩展。然而,在声明一个函数组件 ( const MyFunctionComponent = () => ()) 时,并没有明确说“嘿,顺便说一下,这是一个 React 组件。”

就我们所知,这可能是纯 JavaScript 中的函数。那么,React 如何将函数识别为函数组件?

javascript reactjs

6
推荐指数
1
解决办法
2005
查看次数

使用React Router重新加载页面时出现404错误

我有...

后端

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,如何在刷新后获得呈现“我”的页面/组件?

javascript reactjs react-router

5
推荐指数
2
解决办法
6339
查看次数

如何使用 jQuery .keyup() 函数捕获键盘输入

正在开发一个简单的刽子手游戏,我试图用 来捕捉用户输入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 是一个全局变量。

javascript jquery user-input keyup

2
推荐指数
1
解决办法
4502
查看次数

无法使用 fetch API 获取数据

我无法让 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\n

我究竟做错了什么?(这是代码)

\n\n
let 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()上班……!

\n

javascript fetch cors reactjs

2
推荐指数
1
解决办法
1万
查看次数

React 组件接收到错误的 prop 值

我有一个模态组件和一个表单组件。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">&times;</span>
          </button>
        </div>
        <div className="modal-body"> …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-props

1
推荐指数
1
解决办法
2286
查看次数

如何在Express Route中捕获无限数量的参数?

假设我有一条快速路线接受数字,将它们全部加起来并返回总数.

通常我会做这样的事情

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 node.js express

1
推荐指数
1
解决办法
99
查看次数