小编cow*_*azy的帖子

输入的event.target在this.setState中为null [React.js]

在我的react组件中,我有一个文件输入:

<input type="file" onChange={this.onFileChange.bind(this)} />` 
Run Code Online (Sandbox Code Playgroud)

而我的onFileChange是:

onFileChange(e) {
  let file = e.target.files[0];
  this.setState(() => ({ file: e.target.files[0] })); //doesnt work
  // this.setState(() => ({ file })); //works
  // this.setState({ file: e.target.files[0] }); //works
}
Run Code Online (Sandbox Code Playgroud)

设置状态的第一种方法失败并出现错误:

Cannot read property 'files' of null
Run Code Online (Sandbox Code Playgroud)

React还提供以下警告:

This synthetic event is reused for performance reasons. If you're 
seeing this, you're accessing the property 'target' on a 
released/nullified synthetic event
Run Code Online (Sandbox Code Playgroud)

但是设置状态的最后两种方式不会给出任何错误或警告.为什么会这样?

html javascript reactjs

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

JS 重命名对象键,同时保留其在对象中的位置

我的 javascript 对象如下所示:

const someObj = {
  arr1: ["str1", "str2"],
  arr2: ["str3", "str4"]
}
Run Code Online (Sandbox Code Playgroud)

在尝试重命名键(例如arr1)时,我最终删除了现有键并使用原始值编写了一个新键。变化顺序obj

someObj = {
  arr2: ["str3", "str4"],
  renamedarr1: ["str1", "str2"]
}
Run Code Online (Sandbox Code Playgroud)

如何在保留密钥顺序的同时重命名密钥

javascript javascript-objects

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

在react-router-dom中重定向?

自从我开始使用react/redux以来我第一次使用react-router-dom应用程序而且我在使用Redirect组件时遇到了麻烦.

我想Redirect在身份验证成功时触发,但在身份验证后它不会重定向到我想要的页面.

index.js

import { BrowserRouter as Router, Route } from 'react-router-dom';
import { createStore, applyMiddleware } from 'redux';
import ReduxThunk from 'redux-thunk';

import App from './components/app';
import Page1 from './containers/page1';
import Signin from './containers/auth/signin';

import Reducers from './reducers';

const createStoreWithMiddleware = applyMiddleware(ReduxThunk)(createStore);
const store = createStoreWithMiddleware(Reducers);

ReactDOM.render(
  <Provider store={store}>
    <Router>
      <div>
        <Route path="/" component={App}/>
        <Route path="/" component={Signin}/>
        <Route path="/signin" component={Signin}/>
        <Route path="/page1" component={Page1}/>
      </div>
    </Router>
  </Provider>
, document.querySelector('.container')); 
Run Code Online (Sandbox Code Playgroud)

signin.js

import { BrowserRouter as Route, Redirect …
Run Code Online (Sandbox Code Playgroud)

redirect reactjs redux react-router-dom

5
推荐指数
1
解决办法
5464
查看次数

GraphQL &amp; 使用嵌套订阅功能

我正在编写一个 graphql 订阅服务器。如果我编写一个查询,将解析器嵌套在另一个中是没有问题的,因此查询将如下所示:

query {
  messages {
    privateMessage {
      id
      message
      userId
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

所以首先messages执行解析器,然后privateMessage执行解析器。我想知道订阅是否可以实现相同的结构,因此它看起来像这样:

subscription {
  messages {
    privateMessage {
      id
      message
      userId
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

编辑:

这是我拥有的当前根订阅模式:

query {
  messages {
    privateMessage {
      id
      message
      userId
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我希望它看起来像这样:

subscription {
  messages {
    privateMessage {
      id
      message
      userId
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

编辑结束

问题是我让messages订阅功能运行但没有privateMessage订阅功能运行。很想知道它是否可能以及如何实现它。因为我是用 node.js 编写的,所以我很感激 js 中的一个例子,但任何指向解决方案的指针都会有所帮助。提前致谢!

javascript graphql

5
推荐指数
1
解决办法
188
查看次数

ReactJs - 隐藏状态和道具

我目前正在做一个项目,刚刚开始使用 ReactJs。(所以还是菜鸟)

我在问自己:使用 React 开发工具的用户可以看到你所有的 props 和 state。我怎样才能防止用户看到例如 ID 和更多“私人”的东西?

提前致谢

javascript reactjs react-devtools

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