我有一个要求,以显示视频(卡)在几行缩略图,并集中在第一个缩略图。我使用嵌套贴图进行显示。代码基本上在视频数组上迭代并返回几行视频。
我们如何关注渲染的第一个元素?我认为我们需要得到第一个元素的ref来聚焦。但是我们如何在这里设置ref并在另一个函数中引用它呢?
const CategoryGrid = props => {
return (
<HotKeys handlers={handlers}>
<div className="grid-container">
<p className="title"> {props.title.toUpperCase()} </p>
<div className="grid">
{
props.videos.map((rowvideos,index) => {
var rowVideoArr = [];
rowvideos.map((video,key)=>{
rowVideoArr.push(<div key={video.id} className="fleft card-container grow">
<Card key={video.id} title={video.name} background={video.thumbnailUrl}/>
</div>)
})
return(<div className="row" key={index}>{rowVideoArr}</div>)
})
}
</div>
</div>
</HotKeys>
);
}
Hello react hook我希望这可以帮助您使用tabIndex定位第一个元素。
const elementRef = useRef();
useEffect(() => {
if (elementRef.current.tabIndex === 0) {
elementRef.current.click();
}
}, []);
return (
<div tabIndex={index} ref={elementRef} id={`${activeLink === index ? "selected" : ""}`}
</div>
)
然后当组件被挂载时,您可以触发第一个焦点事件(或者任何其他的焦点事件)。
输入的简单示例:
const videos = [
{ name: 'video 1' },
{ name: 'video 2' },
{ name: 'video 3' },
];
class App extends React.Component {
constructor(props) {
super(props);
this.videoRefs = [];
}
componentDidMount() {
this.videoRefs[0] && this.videoRefs[0].focus();
}
render() {
return (
<div >
{
videos.map((video, index) => (
<input
key={index}
value={video.name}
ref={ref => this.videoRefs[index] = ref}
/>
))
}
</div>
);
}
}
ReactDOM.render(<App />, document.getElementById('root'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="root"></div>
问题内容: 如何获得元素的渲染高度? 假设您的元素内部包含一些内容。内部的内容将扩大的高度。当您没有明确设置高度时,如何获得“渲染的”高度。显然,我尝试过: 有这样做的技巧吗?如果有帮助,我正在使用jQuery。 问题答案: 应该是 jQuery。这将以数字形式检索包装集中的第一个项目的高度。 尝试使用 仅当您首先将属性设置为有效。不是很有用!
问题内容: 如何获得元素的渲染高度? 假设您的元素内部包含一些内容。内部的内容将扩大的高度。当您没有明确设置高度时,如何获得“渲染的”高度。显然,我尝试过: 有这样做的技巧吗?如果有帮助,我正在使用jQuery。 问题答案: 应该是 jQuery。这将以数字形式检索包装集中的第一个项目的高度。 尝试使用 仅当您首先将属性设置为有效。不是很有用!
我写了一些代码来呈现ReactJS中的重复元素,但我讨厌它有多丑。 有没有更好的方法来实现这一点? (我想在模板代码或类似的方法中嵌入循环。)
问题内容: 我有一个像下面这样的列表,其中第一个元素是id,另一个是字符串: 我只想从此元组列表创建ID列表,如下所示: 我将使用此列表,因此它必须是整数值的列表。 问题答案:
问题内容: 我有一个数组: 我想获得此数组的第一个元素。预期结果: 字符串 一个要求: 它不能通过引用传递来完成 ,所以不是一个好的解决方案。 我怎样才能做到这一点? 问题答案: 原始答案,但代价昂贵(O(n)): 在O(1)中: 其他用例等 如果修改(就重置数组指针而言)不是问题,则可以使用: 如果需要数组“副本”,则从理论上讲应该更有效: 使用PHP 5.4+(但如果为空,则可能导致索引错误)
问题内容: 我已经写了一些代码来渲染ReactJS中的重复元素,但是我讨厌它是如此丑陋。 有没有更好的方法来实现这一目标? (我想在模板代码或类似方法中嵌入循环。) 问题答案: 您可以将表达式放在大括号内。请注意,在已编译的JavaScript中,为什么在JSX语法中永远不可能发生循环;JSX相当于函数调用和加糖的函数参数。仅允许使用表达式。 (此外:请记住将属性添加到在循环内渲染的组件。) JS