小编Jac*_*son的帖子

Jetpack compose NavHost 防止重组屏幕

正如你所看到的,这就是我使用 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

7
推荐指数
1
解决办法
3207
查看次数

ReferenceError:刷新nextjs页面时未定义文档

我正在尝试使用 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 构建的 …

reactjs webpack server-side-rendering next.js

5
推荐指数
1
解决办法
2万
查看次数