关于useState useEffect


import React, { useState, useEffect } from 'react'
import PropTypes from 'prop-types'
import _ from 'lodash'
import CX from 'classnames'

import './index.less'

function WindowOperaButtonsForMac(props) {
  const { style, enableResize } = props
  const {
    WindowStateAction, listenToWindowStateChange, getWindowState, WINDOW_STATE,
  } = require('~/shared/utils/windowState')
  const currentWindow = require('electron').remote.getCurrentWindow()
  const [isMaximized, setIsMaximized] = useState(currentWindow.isMaximized())

  const wrapperStyle = _.assign({}, style)

  const handleMaximize = () => {
    setIsMaximized(currentWindow.isMaximized())
  }

  useEffect(() => {
    return listenToWindowStateChange(handleMaximize)
  })

  return (
    
{ WindowStateAction.close() }} role="button" tabIndex={0} /> { WindowStateAction.minimize() }} role="button" tabIndex={0} /> { if (enableResize === false) { return } const state = getWindowState(currentWindow) if (state === WINDOW_STATE.MAXIMIZED) { WindowStateAction.unmaximize() } else if (state === WINDOW_STATE.NORMAL) { WindowStateAction.maximize() } }} role="button" tabIndex={0} />
) } WindowOperaButtonsForMac.propTypes = { style: PropTypes.object, enableResize: PropTypes.bool, } WindowOperaButtonsForMac.defaultProps = { style: {}, enableResize: false, } export default WindowOperaButtonsForMac

你可能感兴趣的:(关于useState useEffect)