访问反应哑组件中的键 属性 值
Accessing key property value within react dumb component
如何访问我的哑组件中的 key
属性 值?
我有这个愚蠢的组件:
const TagSummary = ({ tags, highlightTag }) => {
if (!tags) {
return <div />;
}
return (
<div>
{Object.keys(tags).map((tag) => {
return (
<div key={ tag }>
<button type="button" onClick={ highlightTag }>
<pre><{ tag }></pre>
</button>
<p>{ tags[tag] }</p>
</div>
);
})}
</div>
);
};
我传入的方法是这样的:
highlightTag(event) {
event.preventDefault();
console.log(event.target);
}
我希望能够检索 key
属性 以便执行其他类型的逻辑。我怎样才能找回它onClick
?
这不是最好的方法,相反,您应该让按钮成为一个单独的组件,您可以在其中将 onclick 和键作为道具传递,然后在按钮组件中将两者合并在一起。快速而肮脏的方法如下
<button type="button" onClick={ highlightTag.bind(this, tag) }>
这将确保该参数始终提供给 highlightTag 函数。
虽然这个问题是当 React 检查组件是否有任何更改时,它总是 return true,因为 render 方法中的函数绑定。如果您不担心性能,您可以保持这种状态,但这是在渲染方法中使用绑定的陷阱
我不确定您是否需要在 highlightTag
函数中取回事件,但我会这样做
<button type="button" onClick={ev => {
ev.preventDefault();
highlightTag(tag);
}}>
这将使您的函数 highlightTag
更具可重用性(以编程方式调用此函数,而不是通过用户交互调用)。它还会将 TagSummary 的实现细节与其父级解耦。
如何访问我的哑组件中的 key
属性 值?
我有这个愚蠢的组件:
const TagSummary = ({ tags, highlightTag }) => {
if (!tags) {
return <div />;
}
return (
<div>
{Object.keys(tags).map((tag) => {
return (
<div key={ tag }>
<button type="button" onClick={ highlightTag }>
<pre><{ tag }></pre>
</button>
<p>{ tags[tag] }</p>
</div>
);
})}
</div>
);
};
我传入的方法是这样的:
highlightTag(event) {
event.preventDefault();
console.log(event.target);
}
我希望能够检索 key
属性 以便执行其他类型的逻辑。我怎样才能找回它onClick
?
这不是最好的方法,相反,您应该让按钮成为一个单独的组件,您可以在其中将 onclick 和键作为道具传递,然后在按钮组件中将两者合并在一起。快速而肮脏的方法如下
<button type="button" onClick={ highlightTag.bind(this, tag) }>
这将确保该参数始终提供给 highlightTag 函数。
虽然这个问题是当 React 检查组件是否有任何更改时,它总是 return true,因为 render 方法中的函数绑定。如果您不担心性能,您可以保持这种状态,但这是在渲染方法中使用绑定的陷阱
我不确定您是否需要在 highlightTag
函数中取回事件,但我会这样做
<button type="button" onClick={ev => {
ev.preventDefault();
highlightTag(tag);
}}>
这将使您的函数 highlightTag
更具可重用性(以编程方式调用此函数,而不是通过用户交互调用)。它还会将 TagSummary 的实现细节与其父级解耦。