• [React] React Fundamentals: transferPropsTo


    the transferPropsTo method lets you easily push properties into your components to easily customize attributes.

    From last two exmaples, we have BButton adn BHeart set up.

        var BButton = React.createClass({
           render: function() {
               return (
                 <a className="btn btn-primary">{this.props.children}</a>
               );
           }
        });
        var BHeart =
                React.createClass({
                    render:function(){
                        return <span className="glyphicon glyphicon-heart"></span>
                    }
                });

    To get more fixability, we don't want button to be 'btn-primary' and icon to be 'glyphicon-hear', we may want something else.

    Here we update the code:

        var BButton = React.createClass({
           render: function() {
               return this.transferPropsTo(
                 <a className="btn">{this.props.children}</a>
               );
           }
        });
    
        var BIcon =
                React.createClass({
                    render:function(){
                        return this.transferPropsTo(<span className="glyphicon"></span>);
                    }
                });

    We take away 'btn-primay' and 'glyphicon-heart', let them just be a BButton and BIcon.

    Then in the App, we can set whatever we want:

        var App = React.createClass({
            render: function(){
                return (
                        <div>
                         <BButton className="btn-danger">I <BIcon className="glyphicon-fire"></BIcon> React</BButton>
                         <BButton className="btn-warning">I <BIcon className="glyphicon-heart"></BIcon> React</BButton>
                         <BButton className="btn-success">I <BIcon className="glyphicon-home"></BIcon> React</BButton>
                        </div>
                );
            }
        });

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title>React Lesson 6: Accessing Child Properties</title>
        <link rel="stylesheet" href="../bower_components/bootstrap/dist/css/bootstrap.min.css"/>
    </head>
    <body>
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.12.2/react.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.12.2/JSXTransformer.js"></script>
    <script type="text/jsx">
        /** @jsx React.DOM */
    
        var App = React.createClass({
            render: function(){
                return (
                        <div>
                         <BButton  href="javascript:alert('Hello');" className="btn-danger">I <BIcon className="glyphicon-fire"></BIcon> React</BButton>
                         <BButton  href="javascript:alert('Hello');"className="btn-warning">I <BIcon className="glyphicon-heart"></BIcon> React</BButton>
                         <BButton  href="javascript:alert('Hello');" className="btn-success">I <BIcon className="glyphicon-home"></BIcon> React</BButton>
                        </div>
                );
            }
        });
    
        var BButton = React.createClass({
           render: function() {
               return this.transferPropsTo(
                 <a className="btn">{this.props.children}</a>
               );
           }
        });
    
        var BIcon =
                React.createClass({
                    render:function(){
                        return this.transferPropsTo(<span className="glyphicon"></span>);
                    }
                });
    
    
        React.render(<App />, document.body);
    </script>
    </body>
    </html>
  • 相关阅读:
    `cd -`
    .git文件夹过大的解决方法
    避免对函数参数的修改
    2020年10月 修改Ant Design Pro底部版权信息的方法
    度目-人脸应用套件 文档中的坑
    "A little like that j-thing"
    Linux安装MySQL后设置密码
    append对len和cap的影响
    s := []int{0, 1, 2, 3, 8: 100}
    Python学习笔记
  • 原文地址:https://www.cnblogs.com/Answer1215/p/4363447.html
Copyright © 2020-2023  润新知