React-modal在 React 14 中非常适合我们。
我们升级到 React 16 并收到以下错误。
invariant.js:38 未捕获错误:Modal.render():必须返回有效的 React 元素(或 null)。您可能返回了未定义、数组或其他一些无效对象
我们使用来自 GitHub 的确切示例代码,并且我们已经重新安装了react-modal
. 有任何想法吗?
应用程序.js:
import React from 'react';
import ReactDOM from 'react-dom';
import ExampleModal from './components/example_modal.js';
ReactDOM.render(
<ExampleModal />
, document.querySelector('#publish-hook'));
example_modal.js:
import React from 'react';
import { Component} from 'react'
import ReactModal from "react-modal";
export default class ExampleModal extends Component {
constructor () {
super();
this.state = {
showModal: true
};
this.handleOpenModal = this.handleOpenModal.bind(this);
this.handleCloseModal = this.handleCloseModal.bind(this);
}
handleOpenModal () {
this.setState({ showModal: true });
}
handleCloseModal () {
this.setState({ showModal: false });
}
render () {
return (
<div>
<button onClick={this.handleOpenModal}>Trigger Modal</button>
{
<ReactModal
isOpen={this.state.showModal}
contentLabel="Minimal Modal Example"
>
<button onClick={this.handleCloseModal}>Close Modal</button>
</ReactModal>
}
</div>
);
}
}
const props = {};
//ReactDOM.render(<ExampleApp {...props} />, document.getElementById('main'))