IT |
ITmedia 総合記事一覧 |
[ITmedia News] Lenovo、ゲーム端末やスマートフォンで使えるスマートグラス「Legion Glasses」10月発売 |
https://www.itmedia.co.jp/news/articles/2309/02/news048.html
|
itmedianewslenovo |
2023-09-02 08:03:00 |
Git |
Gitタグが付けられた新着投稿 - Qiita |
gitでmainにpushできない状況を解決した(?)error: failed to push some refs to |
https://qiita.com/kaihikaru0601/items/4c599f10a7234fc01e64
|
first |
2023-09-02 08:01:16 |
技術ブログ |
Developers.IO |
【iOSDC Japan 2023 レポート】「UIKit ベースの Custom UIContentConfiguration API を用いた複雑なカスタムセルの作り方」を聞いてきた。 |
https://dev.classmethod.jp/articles/iosdc-japan-2023-report-05/
|
customuiconte |
2023-09-01 23:03:54 |
海外TECH |
DEV Community |
🚀 Mastering Advanced Complex React useContext with useReducer ⭐ (Redux Style) ⭐ |
https://dev.to/idurar/mastering-advanced-complex-react-usecontext-with-usereducer-redux-style-2jl0
|
Mastering Advanced Complex React useContext with useReducer Redux Style How to Create an Advanced Complex React Context with useReducer Redux Style React Context API is a powerful feature that allows you to share data between components without having to pass props down the component tree While it s great for simple use cases managing complex state and actions can become challenging In this article we will explore how to create an advanced complex React Context using the useReducer hook which provides a Redux like approach to state management PrerequisitesTo follow along with this tutorial make sure you have a basic understanding of React and how to use React hooks Familiarity with the concepts of Redux and its reducers will also be helpful Github Repo IDURAR we are using this approach in our open source ERP CRM Github Repository Setting Up the ProjectBefore diving into the implementation details let s set up our project Start by creating a new React application using create react app Open your terminal and run the following command npx create react app react context with useReducerOnce the project setup is complete navigate into the project directory cd react context with useReducer Creating the Context ProviderNext we ll create a new file called index js inside a new directory named appContext This file will contain our context provider component import React useMemo useReducer createContext useContext from react import initialState contextReducer from reducer import contextActions from actions const AppContext createContext function AppContextProvider children const state dispatch useReducer contextReducer initialState const value useMemo gt state dispatch state return lt AppContext Provider value value gt children lt AppContext Provider gt function useAppContext const context useContext AppContext if context undefined throw new Error useAppContext must be used within a AppContextProvider const state dispatch context const appContextAction contextActions dispatch const appContextSelector contextSelectors state return state appContextAction export AppContextProvider useAppContext In this code we defines a React context called AppContext and provides a context provider component called AppContextProvider It also includes a custom hook called useAppContext to access the context values The context is initialized with a reducer and initial state The AppContextProvider wraps around child components and provides the context value The useAppContext hook allows accessing the state and actions related to the context This setup enables sharing state and actions across different components in a React application Using the Context ProviderNow that we have our context provider we can start using it in our application Open the src index js file and wrap the root component with the AppProvider import React from react import ReactDOM from react dom import App from app import AppContextProvider from context appContext ReactDOM render lt RouterHistory history history gt lt AppContextProvider gt lt App gt lt AppContextProvider gt lt RouterHistory gt document getElementById root If you want your app to work offline and load faster you can change unregister to register below Note this comes with some pitfalls Learn more about service workers serviceWorker unregister By wrapping our application with the AppProvider all the components within the App component will have access to the context Create contextReducerThis code defines a Redux like context reducer in JavaScript using React Here are the comments explaining each section import as actionTypes from types Define the initial state for the contextexport const initialState isNavMenuClose false Define the reducer function for the contextexport function contextReducer state action switch action type Handle the OPEN NAV MENU action case actionTypes OPEN NAV MENU return state isNavMenuClose false Handle the CLOSE NAV MENU action case actionTypes CLOSE NAV MENU return state isNavMenuClose true Handle the COLLAPSE NAV MENU action case actionTypes COLLAPSE NAV MENU return state isNavMenuClose state isNavMenuClose Throw an error for any unhandled action types default throw new Error Unhandled action type action type Create context ActionsThe code exports a function that provides an interface for dispatching context actions related to the navigation menu This function can be used in React components to dispatch these actions and update the state of the context import as actionTypes from types Define a function that returns an object with context actionsconst contextActions dispatch gt return navMenu Action for opening the navigation menu open gt dispatch type actionTypes OPEN NAV MENU Action for closing the navigation menu close gt dispatch type actionTypes CLOSE NAV MENU Action for toggling collapsing expanding the navigation menu collapse gt dispatch type actionTypes COLLAPSE NAV MENU export default contextActions Accessing Context State and DispatchTo access the state and dispatch function from our context we need to use the useContext hook here we demonstrate how to use the context import useState useEffect from react import Link useLocation from react router dom import Button Drawer Layout Menu from antd import useAppContext from context appContext import logoIcon from style images logo icon svg import logoText from style images logo text svg const SIDEBAR MENU key icon lt DashboardOutlined gt title Dashboard key customer icon lt CustomerServiceOutlined gt title Customer key invoice icon lt FileTextOutlined gt title Invoice key quote icon lt FileSyncOutlined gt title Quote key payment invoice icon lt CreditCardOutlined gt title Payment Invoice key employee icon lt UserOutlined gt title Employee key admin icon lt TeamOutlined gt title Admin const SETTINGS SUBMENU key settings title General Settings key payment mode title Payment Mode key role title Role const Sider Layout const SubMenu Menu export default function Navigation return lt gt lt div className sidebar wraper gt lt Sidebar collapsible true gt lt div gt lt MobileSidebar gt lt gt function Sidebar collapsible let location useLocation const state stateApp appContextAction useAppContext const isNavMenuClose stateApp const navMenu appContextAction const showLogoApp setLogoApp useState isNavMenuClose const currentPath setCurrentPath useState location pathname useEffect gt if location if currentPath location pathname setCurrentPath location pathname location currentPath useEffect gt if isNavMenuClose setLogoApp isNavMenuClose const timer setTimeout gt if isNavMenuClose setLogoApp isNavMenuClose return gt clearTimeout timer isNavMenuClose const onCollapse gt navMenu collapse return lt gt lt Sider collapsible collapsible collapsed collapsible isNavMenuClose collapsible onCollapse onCollapse className navigation gt lt div className logo onClick gt history push style cursor pointer gt lt img src logoIcon alt Logo style height px gt showLogoApp amp amp lt img src logoText alt Logo style marginTop px marginLeft px height px gt lt div gt lt Menu mode inline selectedKeys currentPath gt SIDEBAR MENU map menuItem gt lt Menu Item key menuItem key icon menuItem icon gt lt Link to menuItem key gt menuItem title lt Menu Item gt lt SubMenu key Settings icon lt SettingOutlined gt title Settings gt SETTINGS SUBMENU map menuItem gt lt Menu Item key menuItem key gt lt Link to menuItem key gt menuItem title lt Menu Item gt lt SubMenu gt lt Menu gt lt Sider gt lt gt In the code above we import the AppContext from our context file and use the useContext hook to access the state and dispatch function From here you can use the state and dispatch to update your component accordingly Updating the Context State with ActionsTo update the state of our context we need to define actions in our reducer function Let s add an example action that increments a counter In this article we learned how to create an advanced complex React Context using the useReducer hook We set up a context provider accessed the context state and dispatch function in our components and updated the state using actions This approach provides a Redux like way of managing state within your React applications Github Repo IDURAR we are using this approach in our open source ERP CRM Github Repository |
2023-09-01 23:35:06 |
海外科学 |
BBC News - Science & Environment |
UK scientists tackle periods in polar research |
https://www.bbc.co.uk/news/science-environment-66659741?at_medium=RSS&at_campaign=KARANGA
|
subject |
2023-09-01 23:28:42 |
金融 |
金融総合:経済レポート一覧 |
もはや歓迎されないノーランディング、欲しいのはソフトランディング:経済の舞台裏 |
http://www3.keizaireport.com/report.php/RID/550404/?rss
|
第一生命経済研究所 |
2023-09-02 00:00:00 |
金融 |
金融総合:経済レポート一覧 |
FX Daily(8月31日)~一時145円台前半まで急落 |
http://www3.keizaireport.com/report.php/RID/550405/?rss
|
fxdaily |
2023-09-02 00:00:00 |
金融 |
金融総合:経済レポート一覧 |
FX Monthly (2023年9月号) ~為替相場の見通し(1)ドル円相場:兆しはあるが、テーマ変わらず |
http://www3.keizaireport.com/report.php/RID/550406/?rss
|
fxmonthly |
2023-09-02 00:00:00 |
金融 |
金融総合:経済レポート一覧 |
米金融政策を考える上での注目点はFed Watcher? |
http://www3.keizaireport.com/report.php/RID/550407/?rss
|
fedwatcher |
2023-09-02 00:00:00 |
金融 |
金融総合:経済レポート一覧 |
米国SECによるNFT販売への証券法の適用:大崎貞和のPoint of グローバル金融市場 |
http://www3.keizaireport.com/report.php/RID/550414/?rss
|
pointof |
2023-09-02 00:00:00 |
金融 |
金融総合:経済レポート一覧 |
ニューヨーク連銀によるCBDCの新たな活用 |
http://www3.keizaireport.com/report.php/RID/550423/?rss
|
国際金融情報センター |
2023-09-02 00:00:00 |
金融 |
金融総合:経済レポート一覧 |
JPXレポート 2023 (統合報告書) |
http://www3.keizaireport.com/report.php/RID/550427/?rss
|
日本取引所グループ |
2023-09-02 00:00:00 |
金融 |
金融総合:経済レポート一覧 |
インバウンドプラットフォーム(東証グロース)~外国人向けにWi-Fi端末レンタルや生活サポートサービスを提供。訪日外国人向けWi-Fi事業の拡大と生活サポートサービス拡充で成長を目指す:アナリストレポート |
http://www3.keizaireport.com/report.php/RID/550431/?rss
|
訪日外国人 |
2023-09-02 00:00:00 |
金融 |
金融総合:経済レポート一覧 |
GRCS(東証グロース)~GRCとセキュリティ領域で各種ソリューションと製商品を提供するサービス会社。失注の影響等で業績予想を下方修正したが、損益の回復に対する見方は不変:アナリストレポート |
http://www3.keizaireport.com/report.php/RID/550432/?rss
|
業績予想 |
2023-09-02 00:00:00 |
金融 |
金融総合:経済レポート一覧 |
リベルタ(東証スタンダード)~美容商品、トイレタリー商品、機能衣料などを多様な販路で販売。23年12月期は化粧品などの伸びと子会社の寄与による増収増益見込みに変更なし:アナリストレポート |
http://www3.keizaireport.com/report.php/RID/550433/?rss
|
増収増益 |
2023-09-02 00:00:00 |
金融 |
金融総合:経済レポート一覧 |
ワンキャリア(東証グロース)~採用活動・業務のDX化を支援するキャリアデータプラットフォーム事業を展開。運営メディアの会員数、提供サービスの取引社数ともに増加し業績拡大が続く:アナリストレポート |
http://www3.keizaireport.com/report.php/RID/550434/?rss
|
採用活動 |
2023-09-02 00:00:00 |
金融 |
金融総合:経済レポート一覧 |
内外経済とマーケットの注目点(2023/9/1)~米国市場ではFRBによる追加利上げに対する警戒感が後退している:金融・証券市場・資金調達 |
http://www3.keizaireport.com/report.php/RID/550439/?rss
|
大和総研 |
2023-09-02 00:00:00 |
金融 |
金融総合:経済レポート一覧 |
再生可能エネルギーへの投資機会 |
http://www3.keizaireport.com/report.php/RID/550447/?rss
|
再生可能エネルギー |
2023-09-02 00:00:00 |
金融 |
金融総合:経済レポート一覧 |
日本企業の資本コストや株価を意識した経営はどれくらい進んだか:市川レポート |
http://www3.keizaireport.com/report.php/RID/550453/?rss
|
三井住友 |
2023-09-02 00:00:00 |
金融 |
金融総合:経済レポート一覧 |
(9月)第2週にメジャーSQ、第3週に米CPI、第4週に日米金融会合を控える |
http://www3.keizaireport.com/report.php/RID/550454/?rss
|
Detail Nothing |
2023-09-02 00:00:00 |
金融 |
金融総合:経済レポート一覧 |
【石黒英之のMarket Navi】FRBの利上げ停止を示唆する経済指標相次ぐ |
http://www3.keizaireport.com/report.php/RID/550455/?rss
|
marketnavi |
2023-09-02 00:00:00 |
金融 |
金融総合:経済レポート一覧 |
投資INSIDE-OUT vol.259 ~米国株式、9月は買い場となるのか?~語られざる投資の真実(73)~ |
http://www3.keizaireport.com/report.php/RID/550456/?rss
|
insideoutvol |
2023-09-02 00:00:00 |
金融 |
金融総合:経済レポート一覧 |
楽読 Vol.1917~2023年9月の金融政策、政治・経済イベント |
http://www3.keizaireport.com/report.php/RID/550457/?rss
|
日興アセットマネジメント |
2023-09-02 00:00:00 |
金融 |
金融総合:経済レポート一覧 |
債券市場サーベイ(2023年8月調査) |
http://www3.keizaireport.com/report.php/RID/550458/?rss
|
債券市場 |
2023-09-02 00:00:00 |
金融 |
金融総合:経済レポート一覧 |
サイバーリスクへの保険会社の対応(欧州)~EIOPAのレポートの公表:基礎研レター |
http://www3.keizaireport.com/report.php/RID/550464/?rss
|
eiopa |
2023-09-02 00:00:00 |
金融 |
金融総合:経済レポート一覧 |
【注目検索キーワード】トランジション・ファイナンス |
http://search.keizaireport.com/search.php/-/keyword=トランジション・ファイナンス/?rss
|
検索キーワード |
2023-09-02 00:00:00 |
金融 |
金融総合:経済レポート一覧 |
【お薦め書籍】1300万件のクチコミでわかった超優良企業 |
https://www.amazon.co.jp/exec/obidos/ASIN/4492534628/keizaireport-22/
|
転職 |
2023-09-02 00:00:00 |
ニュース |
BBC News - Home |
Mohamed Al Fayed: Former Harrods owner dies at 94 |
https://www.bbc.co.uk/news/uk-66690623?at_medium=RSS&at_campaign=KARANGA
|
diana |
2023-09-01 23:08:17 |
ニュース |
BBC News - Home |
Ukraine war: Putin influencers profiting from war propaganda |
https://www.bbc.co.uk/news/world-europe-66653837?at_medium=RSS&at_campaign=KARANGA
|
telegram |
2023-09-01 23:07:18 |
ニュース |
BBC News - Home |
Aditya-L1: India set to launch its first mission to Sun |
https://www.bbc.co.uk/news/world-asia-india-66643805?at_medium=RSS&at_campaign=KARANGA
|
aditya |
2023-09-01 23:21:16 |
ニュース |
BBC News - Home |
Macron looks on as France's Africa policy crumbles |
https://www.bbc.co.uk/news/world-europe-66668094?at_medium=RSS&at_campaign=KARANGA
|
francophone |
2023-09-01 23:15:49 |
ニュース |
BBC News - Home |
UK scientists tackle periods in polar research |
https://www.bbc.co.uk/news/science-environment-66659741?at_medium=RSS&at_campaign=KARANGA
|
subject |
2023-09-01 23:28:42 |
ニュース |
BBC News - Home |
Week in pictures: 26 August - 1 September 2023 |
https://www.bbc.co.uk/news/in-pictures-66683127?at_medium=RSS&at_campaign=KARANGA
|
selection |
2023-09-01 23:49:44 |
ニュース |
BBC News - Home |
Ruby Franke: '8 Passengers' parenting mum arrested on child abuse suspicion |
https://www.bbc.co.uk/news/world-us-canada-66651506?at_medium=RSS&at_campaign=KARANGA
|
neighbour |
2023-09-01 23:04:33 |
ニュース |
BBC News - Home |
Saturday's gossip: Salah, Greenwood, Hojbjerg, Adams, Daka, Gray |
https://www.bbc.co.uk/sport/66686415?at_medium=RSS&at_campaign=KARANGA
|
Saturday x s gossip Salah Greenwood Hojbjerg Adams Daka GrayAl Ittihad are prepared to bid £m for Liverpool s Mohamed Salah Lazio decide against signing Mason Greenwood before he joins Getafe plus more |
2023-09-01 23:33:51 |
コメント
コメントを投稿