小编Max*_*kin的帖子

如何在webpack中正确填充URLSearchParams?

我有一个使用fetch polyfill的项目isomorphic-fetch.我想用URLSearchParams来提交POST数据.对于fetch以支持URLSearchParams,它首先检查它是否在全局对象中可用.我虽然使用这个 polyfill但我不知道如何在webpack中正确导入它,所以fetch注意到它是可用的.

我怎么能做到这一点?谢谢!

javascript fetch polyfills webpack

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

React警告传递的prop值为null,其中prop的PropType不是必需的

我有一个组件接收错误作为字符串或具有2个必需属性的对象.但是也可以为此道具传递null.在我当前的设置中,当传递null时,React会发出警告:

警告:失败的道具类型:error提供的 无效道具ErrorDialog

我应该为React改变什么来允许null | 字符串| 这个形状的物体?谢谢!

ErrorDialog.propTypes = {
  onResetError: PropTypes.func.isRequired,
  error: PropTypes.oneOfType([
    PropTypes.shape({
      id: PropTypes.number.isRequired,
      defaultMessage: PropTypes.string.isRequired,
    }),
    PropTypes.string,
  ]),
};
Run Code Online (Sandbox Code Playgroud)

完整的代码是:

import React, { PropTypes } from 'react';
import Dialog from 'material-ui/Dialog';
import FlatButton from 'material-ui/FlatButton';
import { FormattedMessage } from 'react-intl';

const ErrorDialog = ({ error, onResetError }) => {
  function renderError() {
    if (!error) {
      return null;
    } else if (typeof error === 'string') …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

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

反应虚拟化 WindowScroller 性能问题

我正在使用 react-virtualized 库来创建高效的新闻提要。图书馆很棒。我结合了 WindowScroller、AutoSizer 和 VirtualScroll 组件来实现无限滚动行为。问题是当我手动设置 VirtualScroll 高度并且不使用 WindowScroller 时,所有浏览器的性能都很好。但是,当我添加 WindowScroller 组件时,性能显着降低,尤其是在 Firefox (v47.0) 中。如何优化它以便使用窗口滚动是可行的?

这是新闻组件,其中使用了反应虚拟化,我有两种类型的列表项 - 标题项和简单项,标题项包含一组新闻的日期,因此它有点长。

import React, { PropTypes, Component } from 'react';
import Divider from 'material-ui/Divider';
import Subheader from 'material-ui/Subheader';
import { Grid, Row, Col } from 'react-flexbox-grid';
import NewsItem from '../NewsItem';
import styles from './styles.css';
import CircularProgress from 'material-ui/CircularProgress';
import Paper from 'material-ui/Paper';
import classNames from 'classnames';
import { InfiniteLoader, WindowScroller, AutoSizer, VirtualScroll } from 'react-virtualized';
import shallowCompare from 'react-addons-shallow-compare';

class News extends Component …
Run Code Online (Sandbox Code Playgroud)

javascript smooth-scrolling infinite-scroll reactjs react-virtualized

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

使用Elm中的单个语句处理多个匹配案例

我知道在Scala中你可以使用单个表达式处理多个模式,这在榆树中是否可能?

l match {
    case B(_) | C(_) => "B"
}
Run Code Online (Sandbox Code Playgroud)

elm

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

具有计算属性名称的Typescript setState

我正在使用Typescript 2.1。我有一个带有2个数字集合的状态的React组件,我不想复制addItem和removeItem方法,并希望它们是通用的。这是代码:

type Collection = 'challenges' | 'disciplines';

type State = {
  lang: string;
  challenges: number[];
  disciplines: number[];
}

class MyComponent extends React.Component<{}, State> {    
  addItem = (collection: Collection, id: number) => {
    this.setState({
      [collection]: [...this.state[collection], id],
    });
  }

  removeItem = (collection: Collection, id: number) => {
    this.setState({
      [collection]: this.state[collection].filter(anId => anId !== id)
    });
  }

  ...

}
Run Code Online (Sandbox Code Playgroud)

这就是我所谓的方法:

this.addItem('disciplines', id)
Run Code Online (Sandbox Code Playgroud)

现在在addItem方法中,我得到编译错误:

类型'{[x:string]:number []; }'不可分配给'Pick <State,“ lang” | “学科” | “挑战“>”。

类型'{{[x:string]:number [];)中缺少属性'lang'。}'。

有没有办法正确输入?谢谢!

javascript typescript reactjs

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

什么`some_function`构造在榆树中意味着什么?

我正在查看elm-form包文档,并在这里找到这段代码:

field "myfield" (int `andThen` minInt 10)
Run Code Online (Sandbox Code Playgroud)

这些引用是什么意思?这是应用函数的另一种方式吗?

elm

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