我试图找出当用户使用后退/前进浏览器按钮导航时如何使我的React SPA应用程序保持状态.例如,用户正在填写表格,然后他前后移动并自动恢复表格.
我回顾了很多JavaScript路由器,但似乎没有一个正确解决这个问题......(甚至根本没有).
目前我正在使用React Router 4,这是我采用的模式:
history.replace(this.state); 然后我移出页面history.push(newLocation)componentWillMount)我检查this.props.location.state !== undefined,如果是,我恢复它this.setState(this.props.location.state)我的问题是:上述模式是否正确?建议?有没有更好的和广泛采用的方式?
在TypeScript中,如何从文件中“导入*”而不创建任何别名?
例如,我有一个包含顶级导出功能的文件“ utils”,并且想要导入所有这些功能而无需为每个功能重新创建别名。
像这样:
import * from "utils";
Run Code Online (Sandbox Code Playgroud)
那可能吗?
有人知道在 React 中是否可以使用异步更新程序参数setState(updater)吗?我有以下不起作用的代码(f被调用但 UI 未更新):
this.setState( async (prevState) => ({
foo: await f(prevState.someData)
}))
Run Code Online (Sandbox Code Playgroud)
显然async参数有问题。我不得不使用这个丑陋的替代版本:
this.setState( async (prevState) => {
this.setState({
foo: await f(prevState.someData)
})
})
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来编写上面的代码?