将变量设置为 React 组件不起作用
Setting variable to React component not working
此代码使用 React 版本 0.14。
我正在尝试将 var 设置为 React 组件并 return 它。我最终的目标是使用一个开关根据一些道具分配不同的组件。这是我的渲染语句不起作用的部分:
var inputNumber = <InputNumber displayText={this.props.data.DisplayText} />;
return (
{inputNumber}
);
此替换代码评估良好:
return (
<InputNumber displayText={this.props.data.DisplayText}/>
);
这是我收到的错误消息(InputDataItem 是上述代码段来自的组件):
Uncaught Error: Invariant Violation: InputDataItem.render(): A valid ReactComponent must be returned. You may have returned undefined, an array or some other invalid object.
很明显我在语法理解上有差距。
我的假设基于 React 文档的这一部分(第 4 个代码示例):https://facebook.github.io/react/tips/if-else-in-JSX.html
应该是:
return (
<div>
{inputNumber}
</div>
);
或者简单地说:
return inputNumber;
{...}
仅在 JSX 内部是特殊的。在
return (
{inputNumber}
);
没有 JSX。 {...}
表示一个 对象文字 ,尽管它对您来说可能不像一个。 ES2015 中的新功能是 short object notation,它允许您省略密钥。您的代码相当于
return (
{inputNumber: inputNumber}
);
要么只是 return inputNumber
要么将 {...}
放在 JSX 中,正如其他答案所建议的那样。
此代码使用 React 版本 0.14。
我正在尝试将 var 设置为 React 组件并 return 它。我最终的目标是使用一个开关根据一些道具分配不同的组件。这是我的渲染语句不起作用的部分:
var inputNumber = <InputNumber displayText={this.props.data.DisplayText} />;
return (
{inputNumber}
);
此替换代码评估良好:
return (
<InputNumber displayText={this.props.data.DisplayText}/>
);
这是我收到的错误消息(InputDataItem 是上述代码段来自的组件):
Uncaught Error: Invariant Violation: InputDataItem.render(): A valid ReactComponent must be returned. You may have returned undefined, an array or some other invalid object.
很明显我在语法理解上有差距。
我的假设基于 React 文档的这一部分(第 4 个代码示例):https://facebook.github.io/react/tips/if-else-in-JSX.html
应该是:
return (
<div>
{inputNumber}
</div>
);
或者简单地说:
return inputNumber;
{...}
仅在 JSX 内部是特殊的。在
return (
{inputNumber}
);
没有 JSX。 {...}
表示一个 对象文字 ,尽管它对您来说可能不像一个。 ES2015 中的新功能是 short object notation,它允许您省略密钥。您的代码相当于
return (
{inputNumber: inputNumber}
);
要么只是 return inputNumber
要么将 {...}
放在 JSX 中,正如其他答案所建议的那样。