我正在尝试在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中都是相同的.
我正在尝试在我的webpack开发服务器中设置代理.问题是我不控制我正在连接的服务器,我需要验证请求.
有没有办法可以将cookie添加到我发送给代理服务器的请求中?我查看了webpack dev服务器代理服务器页面,以及它链接到的node-http-proxy页面,我没有看到任何cookie提及.我也不确定是否有办法让我看到这些转发的请求,所以我无法判断我正在尝试做什么.
有任何想法吗?
我正在设置一个流星应用程序,涉及注册用户名和密码,然后希望将该帐户与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) 我有一个客户端Web应用程序,具有非常小的节点服务器来访问客户端无法访问的某些数据.其中一个是带有.xls扩展名的excel电子表格.
我正在尝试将我的服务器设置为下载xls,将其转换为csv,然后将其发送回客户端.我已经完成了下载部分,我确信我可以找出"发回"部分,但我不能为我的生活找到一个好的库从xls转换为csv.
有人能指出我能以简单的方式做到这一点的图书馆吗?excel文件只是一个工作表,没有复杂的工作簿或任何东西.
还是有另一种方法可以做到这一点,我没想到?
我正在努力学习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)
就是我拥有的.它不会像这样工作,因为\'它不会关闭字符串,但是当我更改\为时\\,它会将字符串解释为\\.我无法弄清楚任何被解释的东西'\'
我的React应用程序中有一个组件,用于呈现用户的总价值.当这个值上升时,我想发出噪音.我认为在显示总数的组件中将是播放噪音的好地方.
所以我componentWillReceiveProps在组件中添加了一个方法,在其中,我计算了两个总计:total从中计算this.props并nextTotal计算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) 我在 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"会在各种浏览器中产生一些不错的东西。
我刚开始使用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%流量覆盖?怎么样?当它说线没有被覆盖时,流量究竟是什么?
我正在尝试在 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各处使用,而我误解了某些东西?很有可能,我是新手。
我正在遇到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会记录我正在寻找的信息.
任何想法出了什么问题以及如何解决它?
我试图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)