我是React的新手,我想知道这里的标准是什么。
想象一下,我有一个像这样的反应路由器:
<Router history={history}>
<Route path="/" component={App}>
<Route path="home component={Home} />
<Route path="about" component={About} />
<Route path="inbox" component={Inbox} />
<Route path="contacts" component={Contacts} />
</Route>
</Router>
现在我想删除如果prop.mail
设置为的两条路线false
,因此一种理智的做法如下所示:
<Router history={history}>
<Route path="/" component={App}>
<Route path="home component={Home} />
<Route path="about" component={About} />
{ if.this.props.mail ?
<Route path="inbox" component={Inbox} />
<Route path="contacts" component={Contacts} />
: null }
</Route>
</Router>
但是有两条路线,React返回错误:
表达式必须具有一个父元素。
我不想在这里使用多个ifs。React首选的处理方式是什么?
将它们放在一个数组中(也分配键):
{ if.this.props.mail ?
[
<Route key={0} path="inbox" component={Inbox} />,
<Route key={1} path="contacts" component={Contacts} />
]
: null }
使用最新的React版本,您也可以这样尝试
React.Fragment
:
{ if.this.props.mail ?
<React.Fragment>
<Route path="inbox" component={Inbox} />,
<Route path="contacts" component={Contacts} />
</React.Fragment>
: null }
问题内容: 我是angularJs的新手。我正在尝试创建包含输入元素和按钮的新指令。我想使用此指令在单击按钮时清除输入文本。 当我在html中使用指令时,出现以下错误: 的HTML: clearable_input.js: 我无法弄清楚如何实现这一目标。 问题答案: 好吧,这个错误是不言自明的。您的模板需要具有一个根,而您的必须具有两个根。解决此问题的最简单方法是将整个内容包装在a 或a中: 之前
问题内容: 我想将所有表达式与一个空格完全匹配。目前,我正在使用。但是,这似乎不是一个很好的方法。 问题答案: 为什么不?很好,有点复杂:
问题内容: 我在switch / case语句中遇到问题。该错误显示:“ case表达式必须是常量表达式”。我理解该错误,可以使用If来解决它,但是有人可以告诉我为什么case表达式在switch / case中必须是常量。我的错误的代码示例: 谢谢你的解释!! 问题答案: 因此可以在编译阶段进行评估(静态检查) 请参阅:http://docs.oracle.com/javase/specs/jl
从0.13.2更新到0.14.2后,我发现以下错误: 对此已经有几个问题了。最常见的错误是拼错React.component(没有大写字母C)。另一个是尝试使用ES6类的版本 但我已经成功地使用了带有React 0.13.x的ES6类,我在所有地方都使用大写字母C,并且记录React.Component似乎给出了一个合适的结果(函数ReactComponent(…) 经过一些搜索,我做了这3个测试
我有以下简单的代码: 我得到了这个错误: "必须返回有效的React元素(或null)。您可能已返回未定义、数组或其他无效对象。"
问题内容: Eclipse不断给我错误: 但是我绝对可以给注解一个常量。 如果我将其更改为 很高兴,但我不必这样做。有谁知道为什么我的MIN_YEAR常量使用评估表达式而不是纯数字声明时不被视为常量? 问题答案: 表达方式 将仅在运行时确定,但是 是在编译时确定的,因此允许使用,因为注释中的值应在编译时而不是运行时解析。