在 ReactJS 上意外使用“开放”无限制全局变量

Posted

技术标签:

【中文标题】在 ReactJS 上意外使用“开放”无限制全局变量【英文标题】:Unexpected use of 'open' no-restricted-globals on ReactJS 【发布时间】:2019-01-27 04:12:05 【问题描述】:

我正在使用名为“react-responsive-modal”的模态依赖项。它工作得很好,但是 突然它停下来,出现了一条错误消息:

“open”无限制全局变量的意外使用

引用此代码行时出现此错误消息:

<Modal open=open  onClose=this.onCloseModal onExited=this.onExited top>

有人知道怎么解决吗?谢谢你

import React,  Component  from 'react'  
import Modal from 'react-responsive-modal';

class Interiores extends Component 
  constructor(props) 
    super(props)
    this.state =         
      open: false
    
  

  onOpenModal = () => 
    this.setState( open: true );     
  ;

  onCloseModal = () => 
    this.setState( open: false );
  ;  

  render () 
    return (
      <div>             
        <button onClick=this.onOpenModal>Open modal</button>

        <Modal open=open  onClose=this.onCloseModal onExited=this.onExited top>
          <div>
            <h2>Simple centered modal</h2>
            <p>Text here</p>
          </div>
        </Modal>
      </div>
    );
  

【问题讨论】:

准确但我不知道如何解决它 它可能被从状态中解构使用。在render() const open = this.state; return ( ... ); this.state.open 【参考方案1】:

这是因为 open 是 js 中的保留关键字。

http://www.javascripter.net/faq/reserved.htm

我认为你最好在你的渲染方法中解构你的状态,比如

const open = this.state

但考虑到变量的 意图,恕我直言,最好将其命名为 isOpen:false

或者把渲染方法改成

      <Modal 
        open=this.state.open
        onClose=this.onCloseModal
        onExited=this.onExited
        top
      >
        <div>
          <h2>Simple centered modal</h2>
          <p>Text here</p>
        </div>
      </Modal>
    </div>
  );

【讨论】:

以上是关于在 ReactJS 上意外使用“开放”无限制全局变量的主要内容,如果未能解决你的问题,请参考以下文章

在带有 Babel 的 ReactJS 上使用异步等待会导致错误:意外的令牌

在 heroku 上部署 MERN 会导致意外错误

在 ReactJS 中使用 fetch 时,JSON 中位于位置 0 的意外令牌 I

Reactjs:意外的令牌'<'错误

ReactJS:意外令牌'<'

reactjs意外的令牌'<'