Comments (2)
Original author: Just RAG @adrianwiechec
Original date: 2018-01-30T22:07:17Z
For handling random numbers in Redux, when the actions need to just be log-traceable, not neccessarily repeatable, a simple middleware putting random numbers in actions marked with `meta.roll=true` could be enough:
https://github.com/justrag/...
from marks-dev-blog-comments.
Original date: 2019-03-14T02:43:03Z
(NECRO THREAD REPLY!)
Yep, that's another way to do it.
What led me in this direction is wanting to be able to handle an arbitrary number of potential die rolls in the reducer that wouldn't be known beforehand.
For example, imagine a Risk game, where two territories full of armies are about to fight each other. There would be a _lot_ of dice rolls involved to finish the battle.
We _could_ model this by having the game logic live in a thunk or saga, roughly:
while(true) {
const [redArmies, blueArmies] = selectArmies(getState());
if(!redArmies || !blueArmies) break;
const blueArmiesToRemove = rollDice();
const redArmiesToRemove = rollDice();
dispatch({type : "REMOVE_ARMEIS", payload : {blueArmiesToRemove, redArmiesToRemove}})
}
But, that leads to a lot of dispatching.
If we feed in a seeded RNG, the reducer could execute all those dice rolls itself in one dispatch, and the results would be predictable for a given seed (ie, "red always wins with 5 armies remaining").
from marks-dev-blog-comments.
Related Issues (20)
- How Web Apps Work: AJAX, APIs, and Data Transfer HOT 4
- Blogged Answers: Why React Context is Not a "State Management" Tool (and Why It Doesn't Replace Redux) HOT 31
- Coding Career Advice: Using Git for Version Control Effectively HOT 3
- Presentation: JavaScript for Java Devs HOT 1
- Practical Redux, Part 11: Nested Data and Trees HOT 6
- Coding Career Advice: Searching and Evaluating Online Information Efficiently HOT 2
- Presentations: Learn Modern Redux Livestream HOT 1
- Blogged Answers: A Comparison of Redux Batching Techniques HOT 1
- Codebase Conversion: Migrating a MEAN AngularJS app to React, Next.js, and TypeScript HOT 1
- Blogged Answers: React, Redux, and Context Behavior HOT 3
- Idiomatic Redux: Designing the Redux Toolkit Listener Middleware HOT 10
- Presentations: Intro to React, Redux, and TypeScript (2020) HOT 1
- How Web Apps Work: JavaScript and the DOM HOT 4
- Reactathon 2022: The Evolution of Redux Async Logic HOT 4
- Blogged Answers: How I Estimate NPM Package Market Share (and how Redux usage compares to other libraries) HOT 1
- Presentations: Modern Redux with Redux Toolkit
- Blogged Answers: The Evolution of Redux Testing Approaches HOT 1
- Presentations: 2022 Podcasts
- Blogged Answers: My Experience Modernizing Packages to ESM HOT 10
- Practical Redux, Part 7: Form Change Handling, Data Editing, and Feature Reducers HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from marks-dev-blog-comments.