1

我有一个反应功能组件定义为

    export const NavMenuHorizontal: React.FunctionComponent<NavMenuProps> = (
      props
    ) => {         
        const selectedItemRef = React.createRef<HTMLDivElement>();
        React.useEffect(() => {
          selectedItemRef.current?.scrollIntoView({
            behavior: "smooth",
            inline: "center",
          })
        });

        return (
              <List>
              {map(...) => (
                  <div ref={isActive ? selectedItemRef : undefined}>
                     some text 
                  </div>
               )}
              </List>
        );
    };
//isActive is true for only one item in the map

我正在尝试使用 ref 使选定的列表项滚动到视图中,但无法获得预期的结果。但是,如果我尝试在挂钩处添加调试断点,它会按预期工作并在视口中滚动元素。

我还尝试将我的 scrollIntoView 包装在 setTimeout() 中,该方法有效,但它不止一次地滚动它并导致不和谐的效果。

4

0 回答 0