小编Jon*_*ner的帖子

我如何通过React_router传递状态?

这是导致我麻烦的文件:

var Routers = React.createClass({

  getInitialState: function(){
    return{
      userName: "",
      relatives: []
    }
  },

  userLoggedIn: function(userName, relatives){
    this.setState({
      userName: userName,
      relatives: relatives,
    })
  },

  render: function() {
    return (
      <Router history={browserHistory}>
        <Route path="/" userLoggedIn={this.userLoggedIn} component={LogIn}/>
        <Route path="feed" relatives={this.state.relatives} userName={this.state.userName} component={Feed}/>
      </Router>
    );
  }
});
Run Code Online (Sandbox Code Playgroud)

我试图将新的this.state.relativesthis.state.userName通过路线传递到我的"feed"组件.但我收到此错误消息:

警告:[react-router]你无法改变; 它会被忽略

我知道为什么会发生这种情况,但不知道我应该如何将状态传递给我的"feed"组件.在过去的5个小时里我一直在努力解决这个问题,而且我已经非常绝望了!

请帮忙!谢谢


解:

下面的答案很有帮助,我感谢他们,但他们并不是最简单的方法.在我的情况下做到这一点的最好方法是:当您更改路线时,您只需将消息附加到它,如下所示:

browserHistory.push({pathname: '/pathname', state: {message: "hello, im a passed message!"}});
Run Code Online (Sandbox Code Playgroud)

或者如果你通过链接这样做:

<Link 
    to={{ 
    pathname: '/pathname', 
    state: { message: 'hello, im a passed message!' } 
  }}/>
Run Code Online (Sandbox Code Playgroud)

来源: …

browser-history reactjs react-router

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

我可以仅使用 JavaScript 创建 WordPress 插件吗?

我很害怕问这个问题,因为 StackOverflow 已经警告我我的问题可能会被否决。但我对此非常好奇。

我读到您的 WordPress 插件中必须至少有一个 php 文件。这对我来说听起来就像你只需要一个索引/条目 php 文件之类的东西。

但是,我无法通过使用谷歌在 WordPress 插件中找到很多关于 JavaScript 的信息。这对我来说似乎很奇怪,因为我们在这里谈论的是 2017 年的网络。

一个答案将不胜感激!

javascript wordpress

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

Brave浏览器如何使用Chrome的开发工具?

真的很快问题:

为什么Brave浏览器有Chrome的开发工具?

这是否意味着如果在Chrome中运行,我不需要在Brave中测试我的网站?

谢谢 :)

browser google-chrome google-chrome-devtools

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

我如何正确使用componentWillReceiveProps()?

我正在尝试在收到新道具后立即更新子组件.但是,componentWillReceiveProps()在我的子组件中,在道具实际更新之前调用.阅读本文后,我明白为什么,但它没有解释我如何解决我的问题.

道具更新componentWillReceiveProps() 如何打电话?

现在我通过让超时运行等待实际更新来欺骗我,但我真的不喜欢这个解决方案.

  componentWillReceiveProps(){
   var timeOut = setTimeout(() => this.loadPosts(), 100)
  },
Run Code Online (Sandbox Code Playgroud)

谢谢你提前!

javascript reactjs

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

Python 线程 - 如何在单独的线程中重复执行一个函数?

我有这个代码:

import threading
def printit():
  print ("Hello, World!")
  threading.Timer(1.0, printit).start()
threading.Timer(1.0, printit).start()
Run Code Online (Sandbox Code Playgroud)

我正在尝试说“你好,世界!” 每秒打印一次,但是当我运行代码时没有任何反应,该过程只是保持活动状态。

我读过一些帖子,其中这段代码确实对人们有用。

我对在 python 中设置适当的间隔有多困难感到非常困惑,因为我习惯了 JavaScript。我觉得我失去了一些东西。

感谢帮助。

python multithreading timer setinterval

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

未为ts-jest和puppeteer定义浏览器

我正在尝试使用puppeteer为我的打字稿create react app创建快照测试。使用jest进行常规测试可以很好地工作,但是当我试图用浏览器创建快照并必须在我的文件中使用变量时,我被告知。browser.test.tsbrowser is not defined

即使我已经尝试解决了几个小时,我似乎也无法解决此问题。

作为参考,以下是我在package.json文件中的笑话设置:

  "jest": {
"preset": "jest-puppeteer-preset",
"collectCoverageFrom": [
  "src/**/*.{js,jsx,ts,tsx}"
],
"setupFiles": [
  "<rootDir>/config/polyfills.js"
],
"testMatch": [
  "<rootDir>/src/**/__tests__/**/*.(j|t)s?(x)",
  "<rootDir>/src/**/?(*.)(spec|test).(j|t)s?(x)"
],
"testEnvironment": "node",
"testURL": "http://localhost",
"transform": {
  "^.+\\.(js|jsx|mjs)$": "<rootDir>/node_modules/babel-jest",
  "^.+\\.tsx?$": "<rootDir>/config/jest/typescriptTransform.js",
  "^.+\\.css$": "<rootDir>/config/jest/cssTransform.js",
  "^(?!.*\\.(js|jsx|mjs|css|json)$)": "<rootDir>/config/jest/fileTransform.js"
},
"transformIgnorePatterns": [
  "[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs|ts|tsx)$"
],
"moduleNameMapper": {
  "^react-native$": "react-native-web"
},
"moduleFileExtensions": [
  "web.ts",
  "ts",
  "web.tsx",
  "tsx",
  "web.js",
  "js",
  "web.jsx",
  "jsx",
  "json",
  "node",
  "mjs"
], …
Run Code Online (Sandbox Code Playgroud)

typescript jestjs puppeteer

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

无法将容器化应用程序连接到容器化 postgres,接收拨号 tcp 连接被拒绝错误

这个社区是我解决这个问题的最后手段,因为我已经为此奋斗了几个小时。

我有一个在一个容器中运行的 go 应用程序,在另一个容器中我正在运行一个 postgres 数据库。我能够连接到Postgres的从我去应用程序数据库,只要只有我的Postgres是一个容器内,而我去的应用程序是像往常一样在本地运行。但是,当我的 go 应用程序尝试从 docker 容器中访问 postgres 时,出现以下错误

dial tcp 127.0.0.1:8080: connect: connection refused 
Run Code Online (Sandbox Code Playgroud)

下面我尝试提供足够的信息,但如果需要,我很乐意添加更多信息。


我有 2 个使用以下端口运行的 docker 容器:

  • 转到应用程序,端口信息:8081/tcp -> 0.0.0.0:8081
  • postgres 数据库,端口信息:5432/tcp -> 0.0.0.0:8080

我正在运行go 应用程序:

docker run -it --rm --name gographqlserver --link postgresdb:postgres -d -p 8081:8081 gogogopher;
Run Code Online (Sandbox Code Playgroud)

和 postgres 数据库:

docker run -it --rm --name postgresdb -e POSTGRES_PASSWORD=hello123 -d -p 8080:5432 postgresimage;
Run Code Online (Sandbox Code Playgroud)

两个容器都可以毫无问题地启动。


我还尝试在 a 中连接两个容器docker network,但这没有帮助。


将不胜感激!

postgresql go docker

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