小编Stu*_*ong的帖子

React - 将变量插入路由路径

我有一个正在创建的应用程序,我想知道如何将变量插入到<Route path={insert variable here} component={myProfile}> 我正在尝试创建一个 myProfile 页面中,我正在尝试获取它,因此当他们单击链接时,它会将它们重定向到,http://mywebsite.com/userId但是当我尝试Routepath参数中创建一个变量,它不会返回我在该路径上尝试呈现的组件。

路由.js

import { Meteor } from "meteor/meteor"
import React from "react";
import { withRouter, Switch, BrowserRouter, Route, Redirect, Link } from "react-router-dom";

import Login from "../ui/authentication/Login";
import Signup from "../ui/authentication/Signup";
import Home from "../ui/Home";
import { SubjectRoutes } from "../ui/subjectRoutes/subjectRoutes";
import AddNote from "../ui/AddNote";
import myProfile from "../ui/myProfile";
import NotFound from "../ui/NotFound";

export default class Routes extends React.Component{
  renderSubjectRoutes(subjects){
    return subjects.map((subject) => {
      return <Route …
Run Code Online (Sandbox Code Playgroud)

meteor reactjs

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

React - 状态数组删除数组中的最后一项而不是指定的索引

我有一个数组状态,其中填充了称为 items 的对象:

    const [items, setItems] = useState([{name: "", toppings: []}])
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用此函数删除指定索引时:

const removeItem = (index) => {
    setItems(items.filter((item, i) => i !== index))
    areItemsCompleted()
}
Run Code Online (Sandbox Code Playgroud)

当我将元素打印到函数外部的控制台时,它可以工作,但是该项目无法正确渲染。它仅从 jsx 中删除数组的最后一个元素,但items数组具有正确的值。我在某处读到,反应仅浅层检查状态变化,因此它不会检查正在删除的对象的内容。但是,我不确定为什么它显示在控制台中items具有正确的值,但组件没有呈现正确的数据。(相反,除了 中的最后一个元素之外,它呈现相同的数据items)。

我尝试了多种从数组中删除元素的方法,例如

const removeItem = (index) => {
    let arr = [...items]
    arr.splice(index, 1)
    setItems(arr)
    areItemsCompleted()
}
Run Code Online (Sandbox Code Playgroud)

如何从充满对象的数组中删除元素并呈现正确的数据?

reactjs react-hooks

6
推荐指数
2
解决办法
2974
查看次数

Webflow 与 React 集成

我正在尝试使用 webflow 制作一个网站,当我尝试导出代码时,它会在我从 webflow 下载的项目文件夹中运行。但是,当我创建一个 React 应用程序 (create-react-app) 并将styles, js, fonts,images文件夹复制到公共文件夹中并将 HTML 复制到 React 组件中时,内容就在那里,但没有动画。我的动画之一是,当您向下滚动页面时,会出现一些文本。我在网络流论坛上搜索过,也有几个人遇到了这个问题,但还没有得到解决问题的答案。

reactjs webflow

5
推荐指数
0
解决办法
3263
查看次数

如何使用React的Router v4 history.push()

注意:我对React和Meteor相当新,所以在回答我的问题时请非常具体.

我正在尝试使用meteor创建一个短信应用程序并做出反应,但是,我使用的教程是使用React v3,我想知道如何在v4中执行相同的操作,即使用browserHistory.push()或browserHistory.replace ()将用户发送到另一个页面.到目前为止,我正在做一个页面,他们可以将自己的名字设置为他们想要的任何内容,然后将它们链接到聊天页面.我知道有很多关于这方面的文章和文档,但它们都是非常复杂的例子.如果可以,你能告诉我最基本的方法,我可以将某人重定向到另一个页面.

SetName.js:

import React from "react";
import { BrowserRouter } from 'react-router-dom'

export default class SetName extends React.Component{
    validateName(e){
        e.preventDefault();
        let name = this.refs.name.value;
        if(name){
            console.log(name);
        }
        this.props.history.push('/asd')
    }
    render(){
        return(
            <div>
                <form onSubmit={this.validateName.bind(this)}>
                    <h1>Enter a  Name</h1>
                    <input ref="name" type="text"/>
                    <button>Go to Chat</button>
                </form>
            </div>
        )
    }
}
Run Code Online (Sandbox Code Playgroud)

main.js

import React from "react";
import ReactDOM from "react-dom";
import {Meteor} from "meteor/meteor";
import {Tracker} from "meteor/tracker";
import { BrowserRouter, Route, Switch } from 'react-router-dom'

import {Texts} from "./../imports/api/Text"; …
Run Code Online (Sandbox Code Playgroud)

meteor reactjs react-router react-router-v4

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