正如你所看到的,这就是我使用 MaterialBottomNavigation 实现 NavHost 的方式,我在消息和提要屏幕上都有很多项目,当我在这两个屏幕之间导航时,它们会自动重新组合,但我不想,因为那里有太多数据,它会闪烁并且 fps 下降导航时低于 10,我尝试在 NavHost 之前初始化数据 viewModel,但结果仍然相同,有没有办法一次性组合屏幕并在 viewModels 数据更新时更新它们?
@Composable
private fun MainScreenNavigationConfigurations(
navController: NavHostController,
messagesViewModel: MessagesViewModel = viewModel(),
feedsViewModel: FeedsViewModel = viewModel(),
) {
val messages: List<Message> by messagesViewModel.messages.observeAsState(listOf())
val feeds: List<Feed> by feedsViewModel.messages.observeAsState(listOf())
NavHost(
navController = navController,
startDestination = "Messages"
) {
composable("Messages") {
Messages(navController, messages)
}
composable("Feeds") { Feeds(navController, feeds) }
}
}
Run Code Online (Sandbox Code Playgroud) android kotlin android-jetpack android-jetpack-navigation android-jetpack-compose
我正在尝试使用 React for Nextjs 9.4 创建一个简单的 UI 库,这就是我正在做的
// input.js in React UI Lib
import React from "react";
import styled from "./input.module.scss";
const Input = React.forwardRef((props, ref) => (
<>
{props.label && <label className={styled.label}>{props.label}</label>}
<input className={styled.input} {...props} ref={ref} />
</>
));
export default Input;
Run Code Online (Sandbox Code Playgroud)
并为简单起见创建了导出所有模块的索引
// app.js the index file for the lib
import PrimaryButton from "./components/button/primaryButton";
import TextInput from "./components/input/input";
import PasswordInput from "./components/passwordInput/password";
import CheckBox from "./components/checkbox/checkbox";
export {
PrimaryButton,
TextInput,
PasswordInput,
CheckBox
};
Run Code Online (Sandbox Code Playgroud)
这也是我为 SSR Next 构建的 …