问答

如何理解无状态函数组件中的引用?

作者:admin 2021-06-08 我要评论

!DOCTYPE htmlhtmlhead meta charset="utf-8" title08 - stateless default property/title/headbodydiv id="react-container"/divscript src="/uploads/allimg/...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>08 - stateless default property</title>
</head>
<body>
<div id="react-container"></div>

<script src="/uploads/allimg/210608/1406493M8-0.jpg"></script>
<script src="/uploads/allimg/210608/14064a162-1.jpg"></script>
<script src="/uploads/allimg/210608/1406492350-2.jpg"></script>
<script src="/uploads/allimg/210608/14064a109-3.jpg"></script>

<script type="text/babel">

    const { Component } = React
    const { render } = ReactDOM

    const AddColorForm = ({onNewColor}) => {

        let _title, _color

        const submit = e => {
            e.preventDefault()
            onNewColor(_title.value, _color.value)
            _title.value = ''
            _color.value = '#000000'
            _title.focus()
        }

        return (
            <form onSubmit={submit}>
                <input ref={input => _title = input}
                       type="text"
                       placeholder="color title..." required/>
                <input ref={input => _color = input}
                       type="color" required/>
                <button>ADD</button>
            </form>
        )

    }

    AddColorForm.propTypes = {
        onNewColor: PropTypes.func
    }

    AddColorForm.defaultProps = {
        onNewColor: f=>f
    }

    render(
      <AddColorForm />,
      document.getElementById('react-container')
    )


</script>

</body>
</html>

不太明白 <input ref={input => _title = input}/>,无状态函数没有this,不通过属性的方式,组件怎么就能获取到_title了?

###
AddColorForm

是一个函数,
input组件创建时,ref指向的函数就会把input组件实例赋值给函数内变量_title,只要在AddColorForm这个函数内的定义的任意代码块都可访问_title,包括定义的事件回调函数submit

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 如何理解无状态函数组件中的引用?

    如何理解无状态函数组件中的引用?

  • [Nodejs] 如何优雅的替换(变更)指定

    [Nodejs] 如何优雅的替换(变更)指定

  • 字符串多个 replace 如何写性能更高?

    字符串多个 replace 如何写性能更高?

  • js语法简写的习惯有什么隐藏的风险吗?

    js语法简写的习惯有什么隐藏的风险吗?

腾讯云代理商
海外云服务器