componentDidCatch-一个空元素标签

时间:2018-10-08 19:53:23

标签: reactjs

下面显示的代码将导致错误“输入是空元素标记,并且既不能具有children也不能使用dangerouslySetInnerHTML”。使用Comp1时,componentDidUpdate可以正确捕获它,但是当我将其更改为Comp2时,应用程序就会崩溃。为什么会这样?

const Comp1 = () => <input>ABC</input>
const Comp2 = () => <input><div /></input>

class ErrorBoundary extends React.Component {
  state = { error: '' };
  componentDidCatch(error) {
    this.setState({ error: error.toString() });
  }
  render() {
    return this.state.error ? <div>ERROR: {this.state.error}</div> : <Comp1 />
  }
}

似乎在16.4.2中,这两种情况都适用。

0 个答案:

没有答案