reactjs - React:Redirect withRouter 导致警告:React 无法识别 DOM 元素上的 `staticContext` 道具
问题描述
我有一个来自 React Bootstrap 的模态。在客户端运行( )对 API 的 POST 请求后,我想将其重定向withRouter
到“报告”页面。onSubmit
一切正常,但我不断收到警告:
index.js:1 Warning: React does not recognize the `staticContext` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `staticcontext` instead. If you accidentally passed it from a parent component, remove it from the DOM element.
下面是我的代码:
import React, { useState, useEffect } from "react";
import { Button, Modal, FormFile, Form } from "react-bootstrap";
import * as simulator from "../api/simulatorAPI";
import Body from "../api/model/body.json";
import { withRouter } from "react-router-dom";
function RunSimsModal(props) {
const [numberofSims, setNumberOfSims] = useState("");
const [simName, setSimName] = useState("");
const runSims = event => {
console.log("run simulations");
simulator.runSim(
Body.clientId,
simName,
numberofSims
);
props.history.push("/reports");
};
return (
<Modal
{...props}
size="lg"
aria-labelledby="contained-modal-title-vcenter"
centered
>
<Modal.Header closeButton>
<Modal.Title id="contained-modal-title-vcenter">
Run Simulations
</Modal.Title>
</Modal.Header>
<Modal.Body>
<h4>Run Sims</h4>
<Form onSubmit={runSims}>
<Form.Group controlId="formBasicEmail">
<Form.Label>Number Of Simulations</Form.Label>
<Form.Control
required
type="text"
placeholder="Enter number of sims"
value={numberofSims}
onChange={e => setNumberOfSims(e.target.value)}
/>
</Form.Group>
<Form.Group controlId="formBasicEmail">
<Form.Label>Simulation Name</Form.Label>
<Form.Control
required
type="text"
placeholder="Enter simulation name"
value={simName}
onChange={e => setSimName(e.target.value)}
/>
</Form.Group>
<Button type="submit">Run</Button>
</Form>
</Modal.Body>
<Modal.Footer>
<Button onClick={props.onHide}>Close</Button>
</Modal.Footer>
</Modal>
);
}
export default withRouter(RunSimsModal);
这是我的 NavigationBar.js :
import React from "react";
import { Nav, Navbar, Form, FormControl, Button } from "react-bootstrap";
import styled from "styled-components";
import RunSimsModal from "./RunSimsModal";
const Styles = styled.div`
.navbar {
background-color: #222;
}
a,
.navbar-nav,
.navbar-light .nav-link {
color: #9fffcb;
&:hover {
color: white;
}
}
.navbar-brand {
font-size: 1.4em;
color: #9fffcb;
&:hover {
color: white;
}
}
.form-center {
position: absolute !important;
left: 55%;
right: 25%;
}
`;
export const NavigationBar = function () {
const [modalShow, setModalShow] = React.useState(false);
return <Styles>
<Navbar expand="lg" fixed ="top">
<Navbar.Brand href="/">Decade3</Navbar.Brand>
<Navbar.Toggle aria-controls="basic-navbar-nav" />
<Form className="form-center">
<FormControl type="text" placeholder="Search" className="" />
</Form>
<Navbar.Collapse id="basic-navbar-nav">
<Nav className="ml-auto">
<Button variant="primary" onClick={() => setModalShow(true)} >Run Sims</Button>{' '}
<Nav.Item>
<Nav.Link href="/">Home</Nav.Link>
</Nav.Item>
<Nav.Item>
<Nav.Link href="/about">About</Nav.Link>
</Nav.Item>
</Nav>
</Navbar.Collapse>
</Navbar>
<RunSimsModal show={modalShow} onHide={() => setModalShow(false)} />
</Styles>
}
我不确定是什么问题?我对 React 还很陌生,所以我仍在研究核心概念。
解决方案
推荐阅读
- sql-server - xml /XSD 文件源 ssis 2010 - 根级别的数据对 SQL Server 表无效
- laravel - 从数据库中检索问题并将其显示在单选按钮中
- powershell - 用于循环的 Power Shell 脚本?
- r - R中比例函数的统计公式
- schema.org - 组织标志需要网址
- javascript - 重构JS对象数组
- python - Python Beautiful soup:针对特定元素
- appium - 无法启动 Chromedriver 会话:无法创建新会话。详细信息:未创建会话:Chrome 版本必须介于 71 和 75 之间
- r - 在第 3 列中满足条件 x 时尝试删除 NA 行
- google-sheets - 如何将匹配的字符串相加,然后将相应的列总计相加?