小编Fel*_*ing的帖子

为什么es6反应组件仅适用于"导出默认值"?

该组件确实有效:

export class Template extends React.Component {
    render() {
        return (
            <div> component </div>
        );
    }
};
export default Template;
Run Code Online (Sandbox Code Playgroud)

如果我删除最后一行,它不起作用.

Uncaught TypeError: Cannot read property 'toUpperCase' of undefined
Run Code Online (Sandbox Code Playgroud)

我想,我不明白es6语法中的一些东西.是不是必须导出没有"默认"的标志?

javascript ecmascript-6

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

async函数+ await + setTimeout的组合

我正在尝试使用新的异步功能,我希望解决我的问题将来会帮助其他人.这是我正在运行的代码:

  async function asyncGenerator() {
    // other code
    while (goOn) {
      // other code
      var fileList = await listFiles(nextPageToken);
      var parents = await requestParents(fileList);
      // other code
    }
    // other code
  }

  function listFiles(token) {
    return gapi.client.drive.files.list({
      'maxResults': sizeResults,
      'pageToken': token,
      'q': query
    });
  }
Run Code Online (Sandbox Code Playgroud)

问题是,我的while循环运行得太快,并且脚本每秒向google API发送太多请求.因此,我想建立一个延迟请求的睡眠功能.因此我也可以使用此函数来延迟其他请求.如果有其他方式延迟请求,请告诉我.

无论如何,这是我的新代码不起作用.请求的响应返回到setTimeout中的匿名异步函数,但我只是不知道如何将响应返回给sleep函数resp.到最初的asyncGenerator函数.

  async function asyncGenerator() {
    // other code
    while (goOn) {
      // other code
      var fileList = await sleep(listFiles, nextPageToken);
      var parents = await requestParents(fileList);
      // other code
    }
    // other code
  } …
Run Code Online (Sandbox Code Playgroud)

javascript settimeout async-await ecmascript-2017

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

Redux @connect装饰器中的'@'(符号)是什么?

我正在使用React学习Redux并且偶然发现了这段代码.我不确定它是否特定于Redux,但我在其中一个示例中看到了以下代码片段.

@connect((state) => {
  return {
    key: state.a.b
  };
})
Run Code Online (Sandbox Code Playgroud)

虽然功能connect非常简单,但我@之前并不理解connect.如果我没错,它甚至不是JavaScript运算符.

有人可以解释一下这是什么,为什么用它?

更新:

事实上,react-redux它的一部分用于将React组件连接到Redux存储.

javascript decorator reactjs redux

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

最后一段网址

如何获取网址的最后一段?我有以下脚本显示单击的锚标记的完整URL:

$(".tag_name_goes_here").live('click', function(event)
{
    event.preventDefault();  
    alert($(this).attr("href"));
});
Run Code Online (Sandbox Code Playgroud)

如果网址是

http://mywebsite/folder/file
Run Code Online (Sandbox Code Playgroud)

我如何才能在警告框中显示网址的"文件"部分?

javascript jquery

213
推荐指数
11
解决办法
22万
查看次数

无法在事件处理程序中访问React实例(this)

我在ES6中编写了一个简单的组件(使用BabelJS),并且函数this.setState不起作用.

典型的错误包括

无法读取未定义的属性'setState'

要么

this.setState不是函数

你知道为什么吗?这是代码:

import React from 'react'

class SomeClass extends React.Component {
  constructor(props) {
    super(props)
    this.state = {inputContent: 'startValue'}
  }

  sendContent(e) {
    console.log('sending input content '+React.findDOMNode(React.refs.someref).value)
  }

  changeContent(e) {
    this.setState({inputContent: e.target.value})
  } 

  render() {
    return (
      <div>
        <h4>The input form is here:</h4>
        Title: 
        <input type="text" ref="someref" value={this.inputContent} 
          onChange={this.changeContent} /> 
        <button onClick={this.sendContent}>Submit</button>
      </div>
    )
  }
}

export default SomeClass
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 reactjs babeljs

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

如何使用箭头函数(公共类字段)作为类方法?

我刚接触使用带有React的ES6类,之前我已经将我的方法绑定到当前对象(在第一个示例中显示),但ES6是否允许我使用箭头将类函数永久绑定到类实例?(当作为回调函数传递时很有用.)当我尝试使用它时,我遇到错误,就像使用CoffeeScript一样:

class SomeClass extends React.Component {

  // Instead of this
  constructor(){
    this.handleInputChange = this.handleInputChange.bind(this)
  }

  // Can I somehow do this? Am i just getting the syntax wrong?
  handleInputChange (val) => {
    console.log('selectionMade: ', val);
  }
Run Code Online (Sandbox Code Playgroud)

因此,如果我要传递SomeClass.handleInputChangesetTimeout它,那么它将被限定为类实例,而不是window对象.

javascript ecmascript-6 reactjs babeljs ecmascript-next

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

如何添加两个字符串就好像它们是数字一样?

我有两个只包含数字的字符串:

var num1 = '20',
    num2 = '30.5';
Run Code Online (Sandbox Code Playgroud)

我原本以为我可以将它们加在一起,但它们正在被连接起来:

num1 + num2; // = '2030.5'
Run Code Online (Sandbox Code Playgroud)

如何强制将这些字符串视为数字?

javascript

159
推荐指数
7
解决办法
17万
查看次数

使用值设置来自无线电组的选定无线电

我为什么要挣扎?

我有一个值:5

如何检查组"mygroup"的单选按钮值为5?

$("input[name=mygroup]").val(5); // doesn't work?
Run Code Online (Sandbox Code Playgroud)

jquery

145
推荐指数
8
解决办法
25万
查看次数

如何通过history.pushState获得有关历史变化的通知?

因此,现在HTML5引入history.pushState了更改浏览器历史记录,网站开始将其与Ajax结合使用,而不是更改URL的片段标识符.

可悲的是,这意味着不再能够检测到这些呼叫了onhashchange.

我的问题是:是否有可靠的方法(黑客?;))来检测网站何时使用history.pushState?规范没有说明引发的事件(至少我找不到任何东西).
我尝试创建一个外观并替换window.history为我自己的JavaScript对象,但它根本没有任何效果.

进一步说明:我正在开发一个需要检测这些更改并相应操作的Firefox附加组件.
我知道几天前有一个类似的问题,询问听一些DOM事件是否有效但我宁愿不依赖它,因为这些事件可能由于很多不同的原因而产生.

更新:

这是一个jsfiddle(使用Firefox 4或Chrome 8),显示调用onpopstate时不会触发pushState(或者我做错了什么?随意改进它!).

更新2:

另一个(侧面)问题是window.location在使用时没有更新pushState(但我已经在这里读到了这个,我认为).

javascript firefox-addon browser-history pushstate

139
推荐指数
6
解决办法
7万
查看次数

打字稿中的ES6地图

我正在使用类似脚本创建一个类,该类具有ES6(ECMAscript 2016)Map的属性,如下所示:

class Item {
  configs: ????;
  constructor () {
    this.configs = new Map();
  }
}
Run Code Online (Sandbox Code Playgroud)

如何在打字稿中声明ES6 Map类型?

javascript typescript typescript1.5

134
推荐指数
7
解决办法
36万
查看次数