为什么单击某些项目时没有应用“activeClass”(即未添加“toggle-menu__active”)?

问题描述 投票:0回答:1

我目前正在使用“react-scroll”库,并使用了方法activeClass =“toggle-menu__active”和spy = {true}。其背后的目的是在单击我的项目时应用“toggle-menu__active”类中的 CSS 样式。但是,我注意到它没有按预期运行。有些项目在单击时不会激活。

  <nav
        class={`toggle-menu ${
          isNavOpen ? "toggle-menu__open" : "toggle-menu__close"
        }`}
      >
        {/* <div className="toggle-menu__logo">the company logo</div> */}
        <ul className="toggle-menu__list">
          {navLinks.map((link, index) => (
            <li key={index}>
              {/* Use the Link component from react-scroll */}
              <Link
                activeClass="toggle-menu__active"
                spy={true}
                to={link.text.toLowerCase()} // This should match the element's ID you want to scroll to
                smooth={true} // Enable smooth scrolling
                duration={500} // Duration of the scrolling animation
                scrollSpy={true}
                className={`toggle-menu__link `}
              >
                <LinkItem
                  text={link.text}
                  icon={link.icon}
                  iconClassName="icon-nav"
                />
              </Link>
            </li>
          ))}
        </ul>
      </nav>
javascript node.js reactjs react-props react-scroll
1个回答
0
投票

您不应该将任何生命周期相关的组件(例如片段)传递到视图模型中,因为它们可能会导致内存泄漏。

要在旋转时保留

EditText
中的文本,请将
EditText
的文本作为字符串存储在视图模型中。您应该相应地更新和使用它,以确保即使在方向更改后也能保留最新的文本。示例:

视图模型

class UserViewModel: ViewModel() {
   var editTextContent:String = "" 
}
  
   

碎片

class MainFragment : Fragment() {    
    private val mUserViewModel: UserViewModel  by viewModels()// could initialize via kotlin delegated property
              
        override fun onCreate(savedInstanceState: Bundle?){
            super.onCreate(savedInstanceState)
            with(mUserViewModel.editTextContent){
                if(isNotEmpty()){
                    editText.text = text
                }
                else{
                    text = editText.text
                }
                editText.doAfterTextChanged{editable-> if(editable!=null) text = editable.toString()}        
}

我认为这个codelab可能对你有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.