小编Tho*_*lle的帖子

reactRouter for react-router-dom是什么?

我有时会看到人们在withRouter导出它们时将它们包装起来:

import { withRouter } from 'react-router-dom';

class Foo extends React.Component {
  // ...
}

export default withRouter(Foo);
Run Code Online (Sandbox Code Playgroud)

这是什么,我什么时候应该使用它?

reactjs react-router

55
推荐指数
3
解决办法
3万
查看次数

反应路由器在aws s3存储桶中不起作用

我将React网站build/文件夹部署到AWS S3存储桶中.

如果我去www.mywebsite.com,它可以工作,如果我点击a标签去项目和关于页面,它会引导我到正确的页面.但是,如果我复制并发送页面网址或直接转到类似的链接:www.mywebsite.com/projects,则返回404.

这是我的App.js代码:

const App = () => (
    <Router>
        <div>
            <NavBar/>
            <Switch>
                <Route exact path="/" component={Home}/>
                <Route exact path="/projects" component={Projects}/>
                <Route exact path="/about" component={About}/>
                <Route component={NoMatch}/>
            </Switch>
        </div>
    </Router>
);
Run Code Online (Sandbox Code Playgroud)

javascript amazon-s3 amazon-web-services reactjs

24
推荐指数
11
解决办法
9149
查看次数

将 SVG 组件作为背景图像反应到 div

我试图让样式组件采用作为反应组件的 SVG 并将其设置为背景图像,但出现错误:

类型错误:无法将符号值转换为字符串

SVG 组件代码:

import React from "react";

const testSVG = props => {
  return (
    <svg version="1.1" id="Layer_1" x="0px" y="0px" viewBox="0 0 193.3 129.7">
      <g>
        <g>
          <g>
            <path
              fill="#434343"
              class="st0"
              d="M162.4,116c-4.6,7.5-15.6,13.6-24.4,13.6H16c-8.8,0-12.3-6.2-7.7-13.7c0,0,4.6-7.7,11.1-18.4
                c4.4-7.4,8.9-14.7,13.3-22.1c1.1-1.8,6.1-7.7,6.1-10.1c0-7.3-15-24.9-18.5-30.7C13.5,23.6,8.3,14.9,8.3,14.9
                C3.7,7.4,7.2,1.2,16,1.2c0,0,65.9,0,106.8,0c10,0,25.9-4.5,33.5,3.8c8.7,9.3,15.5,25.4,22.5,36.8c2.6,4.2,14.5,18.3,14.5,23.8
                c-0.1,7.6-16,26.1-19.6,32C167.1,108.3,162.4,116,162.4,116z"
            />
          </g>
        </g>
      </g>
    </svg>
  );
};

export default testSVG;
Run Code Online (Sandbox Code Playgroud)

容器组件代码:

import React, { Component } from "react";
import StepSVG from "../../components/UI/SVGs/Test";

class StepBar extends Component {
  render() {
    const { steps } = this.props;

    return (
      <div>
        {steps
          ? steps.map(step => { …
Run Code Online (Sandbox Code Playgroud)

javascript svg reactjs styled-components

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

如何读取 svelte 组件的属性值

组件.svelte

<script>
  export let hiddenStatus;
</script>

<div class:hidden={hiddenStatus}></div>
Run Code Online (Sandbox Code Playgroud)

应用程序.svelte

<script>
  import Component from "./Component.svelte";
</script>

<Component hiddenStatus={true}/>
{Component.hiddenStatus}
Run Code Online (Sandbox Code Playgroud)

当我尝试获取该属性值时,hiddenStatus它显示为undefined. 我该如何解决这个问题?

svelte

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

如何在反应中保存文件输入值

假设一个页面包含多阶段表单,在表单的第一阶段包含名称的输入字段,在第二阶段它包含文件的输入,onChange 设置名称和文件的状态值,但是当我们像第一阶段到第二阶段一样来回移动时阶段和第二阶段,我们可以保存输入类型名称的值,但如何保存输入类型文件的值。

import React, { Component } from "react";

class App extends Component {
  constructor(props) {
    super(props);
    this.state = {
      pageone: true,
      pagetwo: false,
      pagethree: false,
      pageonedata: "",
      pagetwodata: "",
      pagethreedata: ""
    };
    this.nextPage = this.nextPage.bind(this);
    this.prevPage = this.prevPage.bind(this);
    this.togglePage = this.togglePage.bind(this);
  }

  prevPage() {
    if (this.state.pagetwo === true) {
      this.setState({
        pageone: !this.state.pageone,
        pagetwo: !this.state.pagetwo
      });
    } else if (this.state.pagethree === true) {
      this.setState({
        pagethree: !this.state.pagethree,
        pagetwo: !this.state.pagetwo
      });
    }
  }

  nextPage() {
    if (this.state.pageone === true) {
      this.setState({
        pageone: …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

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

反映反模式,在另一个组件的定义中定义一个组件

我已经阅读了React中的嵌套组件.

我尝试了这个例子并注意到每次我更新父组件的状态(todolist).DOM树重新渲染整个而不是添加新的.

我的问题是:这是一种我们应该避免的反模式吗?

const TodoList = ({ todos, onTodoClick }) => {
  const Todo = ({ completed, text, onClick }) => {
    return (
      <li onClick={onClick} style={{ textDecoration: completed ? 'line-through' : 'none' }}>
        {text}
      </li>
    );
  };
  return todos.map(todo => <Todo key={todo.id} {...todo} onClick={() => onTodoClick(todo.id)} />);
};
Run Code Online (Sandbox Code Playgroud)

这是我的测试 在此输入图像描述

javascript anti-patterns reactjs

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

邮件附件错误的媒体类型Gmail API

我正在尝试使用通过Gmail API在Javascript客户端附加的jpeg文件发送消息.我到目前为止编写的代码如下:

$.ajax({
  type: "POST",
  url: "https://www.googleapis.com/upload/gmail/v1/users/me/messages/send?uploadType=multipart",
  headers: {
    'Authorization': 'Bearer ' + accessToken,
    'Content-Type': 'multipart/related; boundary="foo_bar_baz"'
  },
  data: data
});
Run Code Online (Sandbox Code Playgroud)

哪里data是一个字符串建立类似的例子在这里找到:

--foo_bar_baz
Content-Type: application/json; charset=UTF-8

{ 
  "raw": "RnJvbTogRW1pbCBUaG9saW4gPGVtdGhvbGluQGdtYWlsLmNvbT4KVG86IEV4YW1wbGUgTmFtZSA8ZW10aG9saW5AZ21haWwuY29tPgpTdWJqZWN0OiBzZHNkCgpzZHNk"
}

--foo_bar_baz
Content-Type: image/jpeg

data:image_jpeg;base64,_9j_4AAQSkZJRgABAQEAYABgAAD_2wBDAAIBAQIBAQICAgICAgIC…bHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3-Pn6_9oADAMBAAIRAxEAPwD-f-iiigD_2Q==

--foo_bar_baz--
Run Code Online (Sandbox Code Playgroud)

我得到的错误是Media type 'image/jpeg' is not supported. Valid media types: [message/rfc822]可以理解的,因为[message/rfc822]根据规范,媒体是唯一有效的MIME类型,但上面链接的示例另有说明.

我究竟做错了什么?如果有人能够对此有所了解,我将不胜感激!

javascript email ajax gmail-api

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

使用lodash从数组中过滤冗余对象

数据

var ranges = [
        { start: 2, end: 5 },
        { start: 8, end: 12 },
        { start: 15, end: 20 },
        { start: 9, end: 11 },
        { start: 2, end: 6 }
    ];
Run Code Online (Sandbox Code Playgroud)

每个对象代表一个范围.我需要删除包含在另一个中的范围.也就是说,在两个冗余对象之间我需要保持更长的范围.

我写了这段代码,但我想知道是否有更好的方法来实现这个使用lodash.

var Range = {
    contains: function(r1, r2) {
        return r2.start >= r1.start && r2.end <= r1.end;
    }
};

var result = _.chain(ranges)
    .filter(function(r2) {
        return !_.some(ranges, function(r1) {
            return r1 != r2 && Range.contains(r1, r2);
        });
    })
    .value();

console.log(result);
Run Code Online (Sandbox Code Playgroud)

产量 …

javascript lodash

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

“npm run build”经常冻结我的整个服务器

也许 75-80% 的时间,我可以git pull在我的 EC2 Linux 服务器上运行,然后npm run build创建我的 React 应用程序的生产就绪构建。然而,有时,在运行后npm run build,整个服务器会冻结,我不得​​不强制重启几次才能让它再次启动并运行。

这似乎是完全随机的。某些 JavaScript 编译(我猜?)过程可能会撞倒整个服务器,这似乎非常奇怪,但它发生的频率足够高,显然不是由其他任何原因引起的。

这是有人遇到过的吗?

reactjs

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

如何设置可在react-select中选择的最大项目数?

我正在使用react-select中的CreatableSelect组件。现在,用户可以选择任意数量的项目,但我希望用户选择的项目不超过5个。如何限制可以选择的最大选项数?

<CreatableSelect
  classes={classes}
  styles={selectStyles}
  textFieldProps={{
    label: "Tags"
  }}
  options={suggestions}
  components={components}
  value={this.state.multi}
  onChange={this.handleChange("multi")}
  placeholder=""
  isMulti
/>
Run Code Online (Sandbox Code Playgroud)

javascript jsx reactjs react-select

8
推荐指数
2
解决办法
1252
查看次数