【问题标题】:How do I pass props to a react component?如何将道具传递给反应组件?
【发布时间】:2017-03-23 22:01:47
【问题描述】:

对于“请在我的代码中找到错误”问题表示歉意,但我正在努力尝试掌握 React。

我正在尝试将名为 hashRoute 的变量传递给 react 中的组件,但每当我尝试在组件渲染方法中使用 this.props.route 访问道具时,都会收到浏览器警告:

“警告:标签上的未知道具route。从 元素。

我的组件:

var App = React.createClass({
    render: function(){
        var Child;
        switch(this.props.route)
        {
            case 'about':
                Child = about;
                break;
            default: 
                Child = Home;
                break;
        }

        return (
            <div>
                <Child/>
            </div>
        );
    }
});

调用函数:

function render(){
    var hashRoute = window.location.hash.substr(1);
    ReactDOM.render(<app route = {hashRoute} />, document.getElementById('app'));
}

window.addEventListener('hashChange', render);

我显然做错了什么,但我不完全确定是什么。我也尝试过使用扩展语法(将&lt;app route = {hashRoute} /&gt; 替换为&lt;app {...hashRoute} /&gt;,但随后我收到另一个浏览器警告,告诉我React.__spread is deprecated and should not be used.

任何想法将不胜感激。

【问题讨论】:

    标签: javascript reactjs


    【解决方案1】:

    关于 React 组件的一个鲜为人知的事实:组件的名称必须以大写字母开头。这是为了与 React 中为 HTML 保留的组件(如 div、span 等)区分开来。

    【讨论】:

    • 哇。你会认为这是他们会记录的东西。大写的。在每一页上。闪烁。
    • 记录在案;但不是你想的。它在 JSX 部分,而不是组件部分。 facebook.github.io/react/docs/…
    猜你喜欢
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    • 2019-01-27
    • 2018-11-04
    • 1970-01-01
    • 2020-03-26
    • 2021-09-27
    • 2020-05-25
    相关资源
    最近更新 更多