小编fns*_*jdb的帖子

在React中更改文档标题?

我正在尝试在React应用程序中更新文档的标题.我对此有非常简单的需求.Total即使您在不同的选项卡上,标题也主要用于显示组件.

这是我的第一直觉:

const React = require('react');

export default class Total extends React.Component {
  shouldComponentUpdate(nextProps) {
    //otherstuff
    document.title = this.props.total.toString();
    console.log("Document title: ", document.title);
    return true;
  }
  render() {
    document.title = this.props.total;
    return (
      <div className="text-center">
        <h1>{this.props.total}</h1>
      </div>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

我认为这只会在document.title每次渲染此组件时更新,但它似乎没有做任何事情.

不知道我在这里缺少什么.可能与React如何运行此函数有关 - 可能是某个document变量不可用的地方?

编辑:

我正在为这个问题开始赏金,因为我还没有找到任何解决方案.我已将代码更新为更新版本.

一个奇怪的发展是,console.log 打印出来我正在寻找的称号.但由于某种原因,选项卡中的实际标题不会更新.此问题在Chrome,Safari和Firefox中都是相同的.

dom reactjs

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

我可以将cookie添加到webpack dev服务器代理吗?

我正在尝试在我的webpack开发服务器中设置代理.问题是我不控制我正在连接的服务器,我需要验证请求.

有没有办法可以将cookie添加到我发送给代理服务器的请求中?我查看了webpack dev服务器代理服务器页面,以及它链接到的node-http-proxy页面,我没有看到任何cookie提及.我也不确定是否有办法让我看到这些转发的请求,所以我无法判断我正在尝试做什么.

有任何想法吗?

cookies proxy node.js webpack webpack-dev-server

15
推荐指数
2
解决办法
9836
查看次数

将服务连接到现有的meteor帐户

我正在设置一个流星应用程序,涉及注册用户名和密码,然后希望将该帐户与Facebook和Twitter连接.

我的第一部分很容易上手,只需使用帐户包.但是当我有一个登录用户调用Meteor.loginWithFacebook()时,它会将它们记录下来并创建一个新帐户.我想要的是将facebook凭据添加到当前登录用户的内容.

流星文档有这个:

{
  _id: "bbca5d6a-2156-41c4-89da-0329e8c99a4f",  // Meteor.userId()
  username: "cool_kid_13", // unique name
  emails: [
    // each email address can only belong to one user.
    { address: "cool@example.com", verified: true },
    { address: "another@different.com", verified: false }
  ],
  createdAt: Wed Aug 21 2013 15:16:52 GMT-0700 (PDT),
  profile: {
    // The profile is writable by the user by default.
    name: "Joe Schmoe"
  },
  services: {
    facebook: {
      id: "709050", // facebook id
      accessToken: "AAACCgdX7G2...AbV9AZDZD"
    },
    resume: {
      loginTokens: [
        { token: …
Run Code Online (Sandbox Code Playgroud)

javascript account oauth meteor

11
推荐指数
2
解决办法
1645
查看次数

在节点中的服务器上将XLS转换为CSV

我有一个客户端Web应用程序,具有非常小的节点服务器来访问客户端无法访问的某些数据.其中一个是带有.xls扩展名的excel电子表格.

我正在尝试将我的服务器设置为下载xls,将其转换为csv,然后将其发送回客户端.我已经完成了下载部分,我确信我可以找出"发回"部分,但我不能为我的生活找到一个好的库从xls转换为csv.

有人能指出我能以简单的方式做到这一点的图书馆吗?excel文件只是一个工作表,没有复杂的工作簿或任何东西.

还是有另一种方法可以做到这一点,我没想到?

csv excel xls node.js npm

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

在python中无法获得单个\

我正在努力学习python,而且我对它很陌生,我无法想象这一部分.基本上,我现在正在做的是获取网页的源代码,并取出所有不是文字的东西.

网页上有很多\n和\ t,我想找到一些可以找到它的东西,并删除它与下一个'之间的所有内容.

def removebackslash(source):
    while(source.find('\') != -1):
        startback = source.find('\')
        endback = source[startback:].find(' ') + startback + 1
        source = source[0:startback] + source[endback:]
    return source
Run Code Online (Sandbox Code Playgroud)

就是我拥有的.它不会像这样工作,因为\'它不会关闭字符串,但是当我更改\为时\\,它会将字符串解释为\\.我无法弄清楚任何被解释的东西'\'

python

9
推荐指数
2
解决办法
505
查看次数

即使道具发生了变化,nextProps也始终与componentWillReceiveProps中的this.props相同

我的React应用程序中有一个组件,用于呈现用户的总价值.当这个值上升时,我想发出噪音.我认为在显示总数的组件中将是播放噪音的好地方.

所以我componentWillReceiveProps在组件中添加了一个方法,在其中,我计算了两个总计:total从中计算this.propsnextTotal计算nextProps.

令我惊讶的是,即使价值发生变化,总数也会发生变化,nextTotal并且总是相同的.因此,当总计上升时我想要解雇的条件永远不会发生.total

我写了一个简单的单组件示例.JSfiddle.

var Hello = React.createClass({
  componentWillReceiveProps: function(nextProps) {
    var total = 0;
    this.props.vals.forEach(val => total+= val);

    var nextTotal = 0;
    nextProps.vals.forEach(val => nextTotal+= val);

        console.log(total, nextTotal)

    if (nextTotal > total) {
            //never runs
            console.log('moving up');
        }
  },
  render: function() {
    var total = 0;
    vals.forEach(val => total+= val)
    return (
        <div>{total}</div>
    )
  }
});

var vals = [1, 21, 452, …
Run Code Online (Sandbox Code Playgroud)

javascript components reactjs

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

React 中带十进制输入的数字?

我在 React 组件中有一个数字输入,它需要接受带小数点的数字。通常条目将是一分钱的分数,比如0.0073,那种东西。

<div className="form-group">
  <label htmlFor="rate" className="col-sm-6 control-label">Rate:</label>
  <div className="col-sm-2"> 
    <input type="number"
      title="Rate"
      id="rate"
      className="form-control"
      value={this.props.rate}
      min="0.00"
      step="0.001"
      max="1.00"
      onChange={()=>{
        console.log('page rate changed');
        this.props.setrate($('#rate').val());
      }} />
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

问题是每次击键都会重置应用程序的速率,然后将该值放入input. 所以它是这样的:

  • 用户输入0,该值设置为0,并0显示。
  • 用户类型.,0.不是有效数字,因此清除输入。

任何人都可以思考或解决方法吗?我知道我可以只使用普通输入,但type="number"会在各种浏览器中产生一些不错的东西。

forms reactjs

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

如何获取Flow类型检查器涵盖的JSON.parse结果?

我刚开始使用flow.我试图在项目中尽可能接近100%的流量覆盖率,而我无法弄清楚的一件事是如何处理JSON.parse.

type ExampleType = {
  thingOne: boolean,
  thingTwo: boolean,
};
const exampleVariable: ExampleType = JSON.parse(
  '{thingOne: true, thingTwo: false}'
);
Run Code Online (Sandbox Code Playgroud)

所以我有一个类型,我从另一个源接收一个字符串,我解析它并期望它是那种类型.

整个JSON.parse(...)部分标记为"未被流程覆盖".

如果JSON.parse在该文件中使用文件,有没有办法让文件达到100%流量覆盖?怎么样?当它说线没有被覆盖时,流量究竟是什么?

json flowtype

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

在 Knex.js 中选择总和,而不使用 .raw

我正在尝试在 Knex.js 中重写一些 MySQL 查询,我觉得我每次都会遇到这种情况.raw,这与我最初想要使用 Knex 的原因背道而驰。

是否可以在不使用 的情况下编写以下查询.raw

SELECT
   product,
   SUM(revenue)
FROM orders
Run Code Online (Sandbox Code Playgroud)

使用 raw,可以这样写:

knex()
   .select(
      'product',
      knex.raw('SUM(revenue)')
   )
   .from('orders')
Run Code Online (Sandbox Code Playgroud)

但使用 Knex 的想法是避免使用 MySQL 查询字符串,所以我希望有另一种方法。还是每个人都在.raw各处使用,而我误解了某些东西?很有可能,我是新手。

mysql knex.js

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

从Meteor.method中的回调中返回值

我正在遇到Meteor不理解的事情.我有这个方法,它接受一个查询,发送到亚马逊,然后在该函数的回调中,我尝试返回结果.

Meteor.methods({
    'search': function(query) {
        var bookInfo;
        if (Meteor.isServer) {
            amazon.execute('ItemSearch', {
                'SearchIndex': 'Books',
                'Keywords': query,
                'ResponseGroup': 'ItemAttributes'
            }, function(results) {
                bookInfo = results;
                console.log(bookInfo);
                return bookInfo;
            });
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

但是当我在浏览器中将以下内容放入控制台(chrome)时:

Meteor.call('search', 'harry potter', function(error, response) {
    console.log('response:', response);
});
Run Code Online (Sandbox Code Playgroud)

我明白了:

undefined
response: undefined          VM13464:3
Run Code Online (Sandbox Code Playgroud)

我想我明白第一个undefined来自于在客户端上没有返回任何内容的方法,但回调似乎根本不起作用.

amazon.execute(...)肯定会返回一些东西,因为返回上方的console.log会记录我正在寻找的信息.

任何想法出了什么问题以及如何解决它?

javascript asynchronous callback undefined meteor

6
推荐指数
1
解决办法
8377
查看次数

在Ubuntu服务器上运行selenium-standalone npm包

我试图selenium-standalone在数字海洋的Ubuntu服务器上运行.我ssh到服务器,然后运行这些命令:

apt-get update
apt-get install nodejs nodejs-legacy npm default-jre
npm install selenium-standalone -g
selenium-standalone install
selenium-standalone start
Run Code Online (Sandbox Code Playgroud)

这导致了一个很好的消息,即selenium独立服务器正在运行!但是,当我尝试从计算机上的简单脚本连接到它时:

var webdriver = require('selenium-webdriver'),
    By = webdriver.By,
    until = webdriver.until;

var driver = new webdriver.Builder()
      .forBrowser('chrome')
      .usingServer('http://XXX.XXX.XXX.XX:4444/wd/hub')
      .build();
Run Code Online (Sandbox Code Playgroud)

我收到两条巨大的错误消息.在服务器上,我得到:

23:49:09.596 INFO - Executing: [new session: Capabilities [{browserName=chrome}]])
23:49:09.599 INFO - Creating a new session for Capabilities [{browserName=chrome}]
Starting ChromeDriver 2.25.426924 (649f9b868f6783ec9de71c123212b908bf3b232e) on port 13700
Only local connections are allowed.
23:49:09.644 WARN - Exception thrown
java.util.concurrent.ExecutionException: org.openqa.selenium.WebDriverException: java.lang.reflect.InvocationTargetException
Build …
Run Code Online (Sandbox Code Playgroud)

ubuntu selenium node.js selenium-chromedriver server

4
推荐指数
1
解决办法
1680
查看次数