我如何确认通过props(例如子元素
)接收的反应html" target="_blank">元素在我的渲染方法中属于给定类型?
假设我有一个列表
元素和一个列表项
元素。在List
的render方法中,我想查找传递的所有子项,并对ListItem
s中的任何子项执行一些特殊的操作。
我确实找到了一个可行的实现,但只是在反复试验之后。请参阅下面的代码。(第15.4.2节)
我ist.jsx
import ListItem from 'list-item';
...
React.Children.map(children, child => {
console.log(child); // function ListItem() { ... }
console.log(ListItem); // function ListItem() { ... }
if (isListItem(child)) {
return (...);
}
return child;
})
// this implementation does not work
isListItem(element) {
return (element.type === ListItem);
}
// this implementation does work, but might break if I'm using something like uglify or if I use `react-redux` and `connect()` ListItem (as that will change the display name)
isListItem(element) {
return (element.type.displayName === 'ListItem');
}
// this implementation does work
isListItem(element) {
return (element.type === (<ListItem />).type);
}
名单我tem.jsx
class ListItem expends React.component {
...
}
export default ListItem;
所以,最后一个实现似乎可以工作,但是为什么第一个实现不能工作呢?我在react文档中找不到任何与此相关的资料,尽管我确实发现了一些关于相同内容的堆栈溢出问题。但是,这些问题中提供的答案表明,第一个实现应该可以工作(尽管它们适用于旧版本的React)
>
在反应组件中只允许特定类型的子级
比较两个组件-组件X是组件A的实例吗
虽然这个问题很老,但我在使用react-hot-loader
时遇到了这个问题,并花了一段时间才最终找到这个GitHub问题,解释为什么它会这样。
这是预期的,react-hot-loader@3补丁React.create元素(
-@nfcampos
除了您发现的方法之外,RHL现在还提供了一个
areComponentsEqual()
函数,在其自述文件中有一个专用部分。
import { areComponentsEqual } from 'react-hot-loader'
const element = <Component />
areComponentsEqual(element.type, Component) // true
我定义了这种类型 我想检查一个对象是否来自该类型,但没有办法。我已经尝试过了 我有一个错误:
问题内容: 我有几个共享一些字段的namedtuple。我有一个接受这些元组的函数,并保证仅与共享字段进行交互。我想在mypy中对此类代码进行类型检查。 该代码的示例为: 当我在此代码上运行mypy时,我得到一个可预测的错误: mypy_example.py:20:错误:“ DoSomething”的参数1具有不兼容的类型“ BaseExtended”;预期的“基础” 有没有办法构造我的代码并保持
我有一个使用compare方法的类。该方法将两个对象作为参数。使用java反射,我能够获得所有私有和受保护的字段,并使用一些花哨的东西检查它们的返回类型,然后对它们做我想做的事情。 这对我个人有好处。我知道我想做什么,所以我只是比较两个相同类型的对象,仅此而已。 所以物体是一样的,只是换了位置..有办法防止这种情况吗?我有一个跟踪代码来存储这些对象中的每一个差异..所以如果他们有不同的立场,我会有
Blockly完全支持JS和Python之类的动态类型的模型,并且还包括对C / C ++之类的静态类型的模型的支持,但需要做一些额外的工作。 在这两种情况下,Blockly都可以防止构造一些非理性的组合。以下三个模块之间没有业务联系: Blockly的每种连接类型(值输入/输出,下一个/上一个语句)都可以用类型信息标记,以便显然无效的连接将拒绝连接。这为用户提供了即时反馈,并避免了许多简单的错误
问题内容: 有时需要检查Python中的参数。例如,我有一个函数可以接受网络中其他节点的地址作为原始字符串地址,也可以接受封装其他节点信息的类Node。 我使用type()函数,如下所示: 这是这样做的好方法吗? 更新1: Python 3具有函数参数的注释。可以使用以下工具将其用于类型检查:http ://mypy-lang.org/ 问题答案: 使用。样品: