react-redux 相关问题

Redux的官方React绑定

React Modal 总是重叠

我在创建反应模式时遇到一些问题, 我创建的模态总是与下一个渲染的组件重叠, 模态本身是在组件上创建的,通过单击

回答 1 投票 0

无法在 redux-toolkit 中调度操作

我正在尝试了解 redux-toolkit。我需要理解为什么“添加所有产品”按钮没有将所有产品添加到 redux 存储的状态。虽然添加到购物车适用于单个项目...

回答 1 投票 0

如何在反应中映射到另一个地图内而不重复渲染

我有数组中所有对象的列表 让数组= [ {名称:“Galaxy S22”,存储空间:“128GB”}, {名称:“Galaxy S22 5G”,存储空间:“128GB”},...

回答 1 投票 0

当用户单击“保存”按钮时,如何实现任务的更改?

当用户单击“编辑”按钮时,输入字段将打开,允许用户输入新任务。但是,当用户单击“保存”按钮时,我无法实现保存这些更改。

回答 1 投票 0

Redux 增强器示例

我是 redux 新手。我想知道如何在 redux 中创建自己的增强器。我没有找到任何创建增强器的示例。要创建增强器,那么我需要传递哪些参数以及做什么......

回答 2 投票 0

React Redux“在调度内检测到状态突变”错误

我正在尝试使用dispatch()更改状态。 所以我使用 (...) 运算符来复制对象并更改状态,如下所示: 顺便说一句,当事件为“user-changed-channel...

回答 1 投票 0

CSS框的高度应该动态设置

我想创建一个最大宽度为200px的div;如何自动增加 div 的高度?有人可以帮助我应该使用哪些 css 属性吗? 我的用例是我的盒子宽度应该是恒定的,但是

回答 3 投票 0

为什么初始状态未使用 redux-state-sync 与 React redux-toolkit 应用程序中的上一个选项卡同步?

我有一个使用 redux-state-sync 的 stackblitz 应用程序示例,它描述了一个窗口没有像函数 initStateWithPrevT 时那样从其他窗口获取初始状态的问题...

回答 1 投票 0

Redux-Persist 不在本地存储中存储状态

我试图将特定的减速器状态保存到 localStorage 中,这样即使浏览器刷新它也不会消失。 我已经写了一些代码,但在存储中我只能看到......

回答 1 投票 0

React - React redux 不在本地存储中存储全局变量

我是react和redux的初学者,我试图将全局变量存储在本地存储中,这样即使浏览器刷新它也不会消失。 所以我写了一些代码,...

回答 1 投票 0

如何为 Remix JS 项目提供 Redux store?

我一直在密切关注 Remix Run JS (https://remix.run/),并且一直在研究一些教程,但是,我还没有在此处或网络中找到如何实现还原存储: 我是

回答 2 投票 0

有没有办法可以在 RTK 查询 API 失败时提供默认数据?

我第一次尝试 RTK 查询来获取 React + ts 应用程序中的一些数据。如果 API 失败,有没有办法可以指定一些默认数据?应该采取什么好的做法...

回答 1 投票 0

如何为每个输入动态设置输入变化值

导出默认函数 App() { const [列表,setList] = useState([ { id: uuid(), 姓名: ””, 是可移动的:true, }, ]); const [newRowValue, setNewRowValue] = React.useState("&q...

回答 1 投票 0

React-Leaflet:尽管 Redux 存储中的颜色值更新,折线不会改变颜色

我已经设置了一个包含十六进制颜色代码的 Redux 存储。我计划实现一个功能,用户可以选择线条显示的颜色。然而,当我使用选择器来...

回答 2 投票 0

Redux 工具包状态在分派后不会更改,直到下一次渲染

我正在 React 和我的登录页面中使用 RTK 和 Firebase 构建基本身份验证流程: 导出默认函数LoginPage() { //redux 状态和调度 const isLoading = useAppSel...

回答 1 投票 0

服务看不到 Redux RTK 请求正文

我正在尝试使用 Redux 的 RTK 构建一个小型 Pokemon 应用程序。 在应用程序中,我想通过使用“POST”方法将 pokemonID 发送到端点来将 pokemon 添加到我的 pokedex。当我使用 R...

回答 1 投票 0

从 createAsyncThunk 获取的数据未定义

我想在浏览器第一次运行时显示位于服务器文件夹中的db.json文件中的所有书籍。我正在使用 json-server 来做到这一点。但是,我发现了错误 Uncaught TypeE...

回答 1 投票 0

检测两个条件之间经过的时间

我目前正在开发一个 React 应用程序,并尝试检测达到特定输入值长度所需的时间。 它是一个受控输入,其值通过 redux 操作和减速器存储和设置。 我

回答 2 投票 0

React-Navigation-V6:获取当前所选屏幕的标题

我正在使用react-navigation-v6和抽屉导航器。 我正在使用 react-navigation-v6 和 Drawer Navigator。 <Drawer.Screen name="Screen1" component={MainScreen} options={{ headerShown: true, title: "Main Screen', }} /> Drawer.Screen name="Screen2" component={SecondaryScreen} options={{ headerShown: true, title: "Secondary screen", }} /> 我想要实现的是,每次当前屏幕/路线更改时,我想使用我当前所在屏幕的 title 调度 Redux 函数。比如: dispatch(setReduxContent(CurrentScreen.title)); 我怎样才能实现这一目标?意味着获取当前焦点屏幕的标题,以便将其传递给函数。 我可以在每个屏幕组件中的useFocusEffect()中分派该函数,但我觉得这不是一个好的解决方案。 导航道具上没有 getOptions 或 getScreenOptions 方法。 您必须手动执行此操作,或者在执行 navigation.navigate('nextScreen', {title: 'nextScreenTitle'}) 时传递下一个屏幕标题,并从内部 NextScreen 您将能够从 route params 访问 title,或者您可以调用 redux 更新存储函数具有来自每个不同屏幕的硬编码标题(这看起来不是一个好的解决方案)

回答 1 投票 0

React 检查来自包装组件的访问

我想在单击按钮之前(或在按钮 onClick 函数触发之前)检查包装组件的用户访问权限。 这是按钮组件 我想在单击按钮之前(或在按钮 onClick 函数触发之前)检查包装器组件的用户访问权限。 这是按钮组件 <UltimateButton btntext="+ New document" classes="btn-primary" handleClick={create_new_doc} /> 这里 handleClick 触发 onClick 函数 (create_new_doc)。假设我有一个包装器组件 <AccessControl> 来包装这个按钮组件。我想在 AccessControl 被触发之前单击 create_new_doc 时检查访问权限。 我是这样写的 import React, { Children, cloneElement } from "react"; const AccessControl = ({children}) => { const checkUserAccess = () => { console.log('Access denied') } return {...children} } export default AccessControl; 现在,如果 AccessControl 中的访问被拒绝,那么 create_new_doc 将不再触发。我怎样才能实现它。我也尝试过克隆元素。 这个会这样使用 <AccessControl> <UltimateButton btntext="+ New document" classes="btn-primary" handleClick={create_new_doc} /> </AccessControl> 您可以通过多种方式做到这一点。如果您想保持类似的流程(使用访问包装器),那么您应该让包装器本身处理单击以有条件地呈现按钮。 这是一种简单的方法来做到这一点(如上所述,有很多方法可以做到这一点,如果您想要不同的版本,请告诉我): import React from "react"; const AccessControl = ({ hasAccess, handleClick, children }) => { const handleButtonClick = () => { if (hasAccess) { handleClick(); } else { console.log('Access denied'); } }; return ( <div> {hasAccess ? ( children ) : ( <button disabled onClick={handleButtonClick}> Access Denied </button> )} </div> ); }; export default AccessControl; 用法: <AccessControl hasAccess={checkUserAccess()}> <UltimateButton btntext="+ New document" classes="btn-primary" handleClick={create_new_doc} /> </AccessControl> 看来您克隆子组件的想法是正确的。 克隆子组件并重新注入一个“装饰”的 handleClick 属性,该属性首先调用 checkUserAccess,如果此函数返回 true 或确认用户具有访问权限,则它将调用最初传递的 handleClick 回调。 示例: const AccessControl = ({ children }) => { const checkUserAccess = () => { // Compute hasAccess console.log(hasAccess ? "Access allowed" : "Access denied"); return hasAccess; }; return Children.map(children, (child) => cloneElement(child, { handleClick: (e) => checkUserAccess() && child.props.handleClick(e) }) ); }; 演示 const AccessControl = ({ children, hasAccess }) => { const checkUserAccess = () => { console.log(hasAccess ? "Access allowed" : "Access denied"); return hasAccess; }; return React.Children.map(children, (child) => React.cloneElement(child, { handleClick: (e) => checkUserAccess() && child.props.handleClick(e) }) ); }; const UltimateButton = ({ btntext, handleClick }) => ( <button type="button" onClick={handleClick}> {btntext} </button> ); const App = () => { const create_new_doc = () => console.log("create_new_doc"); return ( <div className="App"> <UltimateButton btntext="No Access Control + New document" classes="btn-primary" handleClick={create_new_doc} /> <AccessControl hasAccess> <UltimateButton btntext="Has access + New document" classes="btn-primary" handleClick={create_new_doc} /> </AccessControl> <AccessControl> <UltimateButton btntext="No access + New document" classes="btn-primary" handleClick={create_new_doc} /> </AccessControl> </div> ); }; const rootElement = document.getElementById("root"); const root = ReactDOM.createRoot(rootElement); root.render( <React.StrictMode> <App /> </React.StrictMode> ); <script src="https://cdnjs.cloudflare.com/ajax/libs/react/18.2.0/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.2.0/umd/react-dom.production.min.js"></script> <div id="root" />

回答 2 投票 0

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