在我的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)
但是设置状态的最后两种方式不会给出任何错误或警告.为什么会这样?
我的 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)
如何在保留密钥顺序的同时重命名密钥?
自从我开始使用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) 我正在编写一个 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 中的一个例子,但任何指向解决方案的指针都会有所帮助。提前致谢!
我目前正在做一个项目,刚刚开始使用 ReactJs。(所以还是菜鸟)
我在问自己:使用 React 开发工具的用户可以看到你所有的 props 和 state。我怎样才能防止用户看到例如 ID 和更多“私人”的东西?
提前致谢