我有一个使用fetch polyfill的项目isomorphic-fetch
.我想用URLSearchParams来提交POST数据.对于fetch以支持URLSearchParams,它首先检查它是否在全局对象中可用.我虽然使用这个 polyfill但我不知道如何在webpack中正确导入它,所以fetch
注意到它是可用的.
我怎么能做到这一点?谢谢!
我有一个组件接收错误作为字符串或具有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) 我正在使用 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
我知道在Scala中你可以使用单个表达式处理多个模式,这在榆树中是否可能?
l match {
case B(_) | C(_) => "B"
}
Run Code Online (Sandbox Code Playgroud) 我正在使用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'。}'。
有没有办法正确输入?谢谢!
我正在查看elm-form
包文档,并在这里找到这段代码:
field "myfield" (int `andThen` minInt 10)
Run Code Online (Sandbox Code Playgroud)
这些引用是什么意思?这是应用函数的另一种方式吗?