Reactjs 从无状态组件返回null/";“功能组件”;

Reactjs 从无状态组件返回null/";“功能组件”;,reactjs,Reactjs,我在React 0.14中有一个在React 0.13中工作的无状态功能组件,但现在返回以下错误: 在返回的组件实例上找不到render方法:您可以 忘记定义渲染,从 无状态组件,或试图呈现类型为 不是React组件的函数 这是我的组件: function ToggleDisplay(props) { //should render a <noscript> per React's implementation if(props.if === false) {

我在React 0.14中有一个在React 0.13中工作的无状态功能组件,但现在返回以下错误:

在返回的组件实例上找不到
render
方法:您可以 忘记定义
渲染
,从 无状态组件,或试图呈现类型为 不是React组件的函数

这是我的组件:

function ToggleDisplay(props) {
    //should render a <noscript> per React's implementation
    if(props.if === false) {
        // return <noscript></noscript>; //do I have to do this manually now?
        return null;
    }

    let style = {};
    if(shouldHide(props)) {
        style.display = 'none';
    }
    return (
        <span style={style} {...props} />
    );
}
功能切换显示(道具){
//应该呈现每个React的实现
if(props.if==false){
//return;//现在是否必须手动执行此操作?
返回null;
}
让style={};
如果(应该隐藏(道具)){
style.display='none';
}
返回(
);
}

我现在必须手动返回
吗?在无状态组件中是否有其他方法返回null

看起来不是,这是Javascript中的技术限制。要支持箭头函数和普通函数作为“组件”,我们需要知道是否可以调用新函数

如果它们是普通函数,只要 它们返回一个元素。然而,这对我来说是行不通的 null/false/string返回值,我们也希望支持这些值。我们 也不能调用新的on arrow函数。同样,我们也不能打电话 新课程


从React 15.0开始,您可以从无状态功能组件返回
null
。(见附件)。不再需要返回
为什么不在父级渲染呢?还有@DominicTobias,我认为这应该是一个可以接受的答案。首先防止组件被渲染。错误消息真的是误导,为我解决了。。。使用了两种版本的React