我正在尝试正确输入映射子组件的道具:
type Props = {
children: any
}
const MyComponent: FunctionComponent<Props> = () => (React.Children.map(children, someMapingFunction);
Run Code Online (Sandbox Code Playgroud)
我一直在用JSX.Element
,但感觉不太对劲。
只是一个简单的例子:
<p>
<span class="example"></span>
<input type="text" name="e_name" id="e_id />
</p>
<script type="text/javascript">
$('input').click(function(){
$(this).parent().children('span').text('Suprise!');
}
</script>
Run Code Online (Sandbox Code Playgroud)
我可以使用什么而不是parent().children()?
我认为这是一段有点不优雅的代码.是任何函数,即:$(this).fun('span').text('just better'); ??
我有一个表格,其中有一个类似于以下内容的部分:
<tr>
<td> <span class="myclass"></span>
</td>
<tr>
Run Code Online (Sandbox Code Playgroud)
我的$(this)设置为tr元素,我正在尝试访问具有"myclass"类集的Span元素.以下似乎有效:
if ($(this).children('td').children('span').is('.myclass')){
alert('in here');
}
Run Code Online (Sandbox Code Playgroud)
但是当试图使用它时:
if ($(this).children("td > span").is('.myclass')){
Run Code Online (Sandbox Code Playgroud)
或这个:
if ($(this).children("td span").is('.myclass')){
Run Code Online (Sandbox Code Playgroud)
它不是.我认为上述2中的任何一个都会得出类似的结果(虽然通过不同的方法),但显然不是.
我在这里错过了什么?
谢谢!
对于我正在处理的应用程序,我正在尝试获取ListView的子项.为此,我有以下代码:
View listItem = mListView.getChildAt(i);
Run Code Online (Sandbox Code Playgroud)
但是,这仅适用于视野中的儿童.我还要接触那些看不见的孩子.我该怎么做?
编辑:
将建议的方法与我已使用的方法进行比较,我发现以下内容:
RelativeLayout listItem1 = (RelativeLayout) mListView.getAdapter().getView(i, null, mListView);
RelativeLayout listItem2 = (RelativeLayout) mListView.getChildAt(i);
Log.d("Checks", "listItem1: " + listItem1);
Log.d("Checks", "listItem2: " + listItem2);
08-27 14:16:56.628: D/Checks(15025): listItem1: android.widget.RelativeLayout@2c5f2920
08-27 14:16:56.628: D/Checks(15025): listItem2: android.widget.RelativeLayout@2c06d938
08-27 14:16:56.628: D/Checks(15025): listItem1: android.widget.RelativeLayout@2c72dfb0
08-27 14:16:56.628: D/Checks(15025): listItem2: android.widget.RelativeLayout@2bfabe50
08-27 14:16:56.638: D/Checks(15025): listItem1: android.widget.RelativeLayout@2c730c18
08-27 14:16:56.638: D/Checks(15025): listItem2: android.widget.RelativeLayout@2c0d3e38
08-27 14:16:56.638: D/Checks(15025): listItem1: android.widget.RelativeLayout@2c12ebc0
08-27 14:16:56.638: D/Checks(15025): listItem2: android.widget.RelativeLayout@2bddbf70
08-27 14:16:56.648: D/Checks(15025): listItem1: android.widget.RelativeLayout@2c131828
08-27 14:16:56.648: D/Checks(15025): listItem2: android.widget.RelativeLayout@2bdf3270 …
Run Code Online (Sandbox Code Playgroud) 我觉得我必须.children()
在一些jQuery函数中使用太多.
这是我的HTML:
<div class="goal-small-container">
<div class="goal-content">
<div class="goal-row">
<span class="goal-actions">
Run Code Online (Sandbox Code Playgroud)
这是我的jQuery:
$('.goal-small-container').hover(function() {
$(this).children('.goal-content').children('.goal-row').children('.goal-actions').css({visibility: "visible"});
}, function () {
$(this).children('.goal-content').children('.goal-row').children('.goal-actions').css({visibility: "hidden"});
});
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?如何减少我在jQuery函数中使用的子项数量?
我希望有一个WPF容器(面板,用户控件等)公开一个属性,以便将所有子项设置为只读(如果已设置).这应该就像将父控件设置为IsEnabled = false,这也会禁用所有子节点.应该考虑哪些孩子及其属性是固定的(例如TextBox.ReadOnly,DataGrid.ReadOnly,...).
我试图创建这样一个控件,它基本上迭代了可视树的所有子项(递归)并相应地处理控件.
这种方法很好,除了进一步更改会影响可视树的情况,以便添加新的子项.这对于ContentControl或ItemsControl都是如此.如果孩子们在浏览完它们后被添加到可视化树中,它们显然不是只读的.
我试图找到一个好的事件来做出反应(基本上在视觉树中检测新的孩子),但是找不到合适的东西.UpdateLayout被触发,但每次都经常通过可视树.
有办法解决这个问题吗?是否有另一种方法可以通过父元素上的绑定将所有(相关)子节点递归设置为只读?
(并且不会:我不希望将所有子项只读属性绑定到全局绑定.重点是将一个元素/部分传播给所有子节点)
我看看这个问题是否已经得到解答,但找不到任何内容,只有关于我正在寻找的反向css规则的问题.
我有一个包含一个或多个孩子的div,我希望它在悬停时改变它的背景,但是如果将其中一个孩子徘徊则不会; 我需要:将悬停规则限制为纯元素,而不是它包含的后代.不是CSS中的父规则,并且:当鼠标经过父项及其子项时触发悬停:我发现自己没有想法,也许只有CSS才能实现这个结果.但问题是关于CSS,所以不需要JS或JQuery解决方案(我可以自己提供)
码:
HTML
<div class="parent">Text of the parent
<p class="class1">I do not need to trigger parent's background color change!</p>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
.parent {
background: #ffffff;
}
.parent:hover {
background: #aaaaff;
}
.class1 {
margin: 10px;
}
Run Code Online (Sandbox Code Playgroud) 反应大师的快速问题;)
React.Children.only是它的顶级api之一,并且通常被react-redux(<Provider />
)和React Router(<Router />
)用来注入商店/路由器作为上下文,这背后的原因是什么,为什么不简单return props.children
呢?似乎与JSX有关?
编辑:请不要解释什么是React.Children.only,我问为什么使用它而不是props.children,这似乎更强大/灵活.
我开发和应用程序是一个幻灯片放映的图片,当你点击它们时每个播放声音.这就像2-4岁的图画书.
问题是,因为android不会让你捕获主页按钮按下并基本上禁用它,当父母将电话给他们的孩子玩无人看管(勇敢的父母)时,孩子可能无意中退出应用程序然后拨打电话或否则调整手机.
还有另外两个应用程序目前有针对此问题的伪造修复程序.这些应用程序是Toddler Lock和ToddlePhone.我曾尝试联系这些应用程序的开发人员以获取一些指导,但他们并不愿意透露任何内容,如果没有问题,但是这里有人有任何建议吗?
看起来这两个应用程序都像主屏幕替换应用程序.当您在这些应用程序上启用"儿童防护模式"时,系统会提示用户选择和应用该操作,选项为"Launcher,LauncherPro等".再加上幼儿应用.然后你必须使幼儿应用程序成为默认设置,然后手机被"锁定",只能在你"解锁"手机时使用按键组合或触摸屏幕的四个角等"解锁".您正常的主屏幕应用程序默认恢复.下次启用"儿童防护模式"时,您甚至不必将幼儿应用程序设为默认应用程序.
我已经读过这两个应用程序与三星手机有问题,它们可能导致无限的崩溃和重启循环,需要恢复出厂设置.显然,这不是问题的理想解决方案,但它看起来是目前唯一可用的解决方案.
有没有人对如何实施"儿童防范模式"有任何想法?
children ×10
jquery ×3
android ×2
c# ×2
css ×2
reactjs ×2
hover ×1
html ×1
javascript ×1
listview ×1
mdi ×1
parent ×1
react-props ×1
react-redux ×1
react-router ×1
replace ×1
typescript ×1
visual-tree ×1
wpf ×1