React Router:自定义浏览器路由器getUserConfirmation对话框

时间:2019-02-15 17:01:25

标签: reactjs react-router react-router-dom

我有自定义的BrowserRouter组件,因为我需要访问React组件中的历史实例,所以我是这样创建的:

OwnBrowserRouter.js

import { BrowserRouter } from "react-router-dom"
import { createBrowserHistory } from "history"

export const history = createBrowserHistory()

export default class OwnBrowserRouter extends BrowserRouter {
  history = history
}

然后,我在我的应用中使用此OwnBrowserRouter组件,并通过自定义模式传递getUserConfirmation组件:

App.js

<OwnBrowserRouter getUserConfirmation={getUserConfirmation}> ... </>

getUserConfirmation.js

const getUserConfirmation = (message, callback) => {
  const modal = document.createElement("div")
  document.body.appendChild(modal)

  const withCleanup = answer => {
    ReactDOM.unmountComponentAtNode(modal)
    document.body.removeChild(modal)
    callback(answer)
  }

  ReactDOM.render(
    <ConfirmModal
      open={true}
      type={MODAL.TYPE.CANCEL}
      handleClose={() => withCleanup(false)}
      handleConfirm={() => withCleanup(true)}
      title="Are you sure?"
      text={message}
    />,
    modal
  )
}

export default getUserConfirmation

然后(当然)我正在某个地方渲染<Prompt>组件...主要问题是它可以与从BrowserRouter导入的原点react-router-dom一起使用,但是每当我切换到{{1 }},它开始显示难看的浏览器对话框(不是我的自定义样式模式)。

2 个答案:

答案 0 :(得分:0)

没有足够的代表发表评论,但您会看到@ketysek上下文

答案 1 :(得分:0)

对于有兴趣回答的人,from sklearn import preprocessing import numpy as np x_test = np.array([[ 1., -1., 2.], [ 2., 0., 0.], [ 0., 1., -1.]]) scaler = preprocessing.MinMaxScaler().fit(x_test) print(scaler.min_) 实际上是一个历史记录API,因此解决方案是

[0.         0.5        0.33333333]