3 回答
TA贡献1998条经验 获得超6个赞
在 index.js 中更改<React.StrictMode><App /><React.StrictMode>
为<App />
,您将不会看到此警告。请注意,严格模式可以帮助您
识别具有不安全生命周期的组件
关于旧版字符串引用 API 使用的警告
关于不推荐使用 findDOMNode 的警告
检测意外的副作用
检测遗留上下文 API
删除前请参考https://reactjs.org/docs/strict-mode.html 。
TA贡献1866条经验 获得超5个赞
如果您正在使用react-bootstrap变通方法中的 Modal 或 Carousel,则禁用动画。关闭它们会使警告消失。
对于模态:
<Modal animation={false}>
<Modal.Header closeButton>
<Modal.Title>Title</Modal.Title>
</Modal.Header>
<Modal.Body>
Content
</Modal.Body>
</Modal>
对于轮播:
<Carousel slide={false} fade={false}>
<Carousel.Item>
Scene 1
</Carousel.Item>
<Carousel.Item>
Scene 2
</Carousel.Item>
</Carousel>
我知道一旦它没有回答 OP 问题,它会更适合作为评论,但我没有足够的声誉来这样做,也许它可以帮助某人。
TA贡献1780条经验 获得超1个赞
@Ross Allen 的响应与基本问题(警告)无关,它解决了代码中的语法问题。
@Ali Rehman 的响应与警告更相关,但也没有正确解决问题,它只是隐藏了问题,因此警告不再出现。如果我们不关心弃用,为什么不呢!
是的,问题来自 React.StrictMode:
<React.StrictMode> <App /> </React.StrictMode>
StrictMode 是一种用于突出显示应用程序中潜在问题的工具。它为其后代激活额外的检查和警告,例如:
识别具有不安全生命周期的组件
关于旧版字符串引用 API 使用的警告
关于不推荐使用 findDOMNode 的警告
检测意外的副作用
检测遗留上下文 API
由于问题中没有完全给出错误回溯,我猜这个问题与关于已弃用 findDOMNode 使用的警告有关,因为引用了渲染方法中的元素:
<Modal show={this.state.show} onHide={this.handleClose}>
<Modal.Header closeButton>
<Modal.Title>Edit your Task!</Modal.Title>
</Modal.Header>
<Modal.Body >
<FormGroup >
<Form.Control
type="text"
value={this.state.editTodo.title}
onChange={this.handleChange}
/>
</FormGroup>
</Modal.Body>
<Modal.Footer>
<Button variant="secondary" onClick={this.handleClose}>
Close
</Button>
<Button variant="primary" onClick={this.handleClose}>
Save Changes
</Button>
</Modal.Footer>
</Modal>
当组件被渲染时,模态框也被渲染了,我们尝试改变组件的状态,组件(以及模态框)会重新渲染,在这个阶段模态框无法访问状态.
解决警告的解决方案是使用React refs。Refs 有助于访问在 render 方法中创建的 DOM 节点或 React 元素。
添加回答
举报