In this lesson we'll use the match.path
value passed in by React Router to setup dynamic routes for Tabs. This will allow us to setup dynamic tabs which can be navigated to based upon the URL. With this pattern we can change the base path and our tab routes will automatically match and render correctly.
In this lesson we'll use scaleLinear
to render a line, and additionally add data points using circle
. Using onMouseMove
we will call the invert
function to do a reverse range
to domain
value interpolation. Then we will use Math.round
and adjust the radius of the circle to highlight the selected point.
In this lesson we'll start by using d3-scale
to build up a scaleBand
for our x
data and a scaleLinear
for our y
data points to allow them to map and extrapolate our data correctly to renderable bars. We'll add in padding
between each bar, and then using the svg rect
will render a collection of bars.
In this lesson we'll start by using d3-scale
to build up a scaleBand
for our x
data and a scaleLinear
for our y
data points to allow them to map and extrapolate our data correctly to renderable bars. We'll add in padding
between each bar, and then using the svg rect
will render a collection of bars.
In this lesson we'll start by using d3-scale
to build up a scaleLinear
for both our x
and y
data points to allow them to map and extrapolate our data correctly to renderable points. Then we'll use line
from d3-shape
to build out our path
. We'll supply it with different sets of data and explore how range
can effect how our data renders. Finally we'll show off using curveStep
to see how it changes our graph rendering.
In this lesson we'll show how to create an updater function. We'll also dive into how to separate your state management logic into a separate reducer function much like how Redux operates. It will receive an action with a type, and any data and update state accordingly.
In this lesson we'll show how to setup a nested validation structure using the yup
library. We'll then use the yup.lazy
method to evaluate the value
at runtime and adjust our validation schema. We'll make our nested validation optional only if our optionalObject
actually exists.
In this lesson we'll walk through building an interactive bitcoin price chart. We'll use React combined with VX to render our chart and tooltips. D3 will power all of the data processing to ensure everything is rendered where it should be. We'll also walk through explaining what scales
, ranges
, domains
and bisectors
are and how to use them.
In this lesson we'll explore using setState
to synchronously update in componentDidMount
. This allows for us to use getBoundingClientRect
or other synchronous UI calls and make changes to the UI without a transient UI state.
In this lesson we'll use yarn and yarn workspaces to create a monorepo that includes a web creat-react-app, a react-native app, and shared code. We'll use react-app-rewired
and react-app-rewire-babel-loader
to rewire the create-react-app configuration to allow babel to process the shared code from workspace. We'll also use crna-make-symlinks-for-yarn-workspaces
and metro-bundler-config-yarn-workspaces
to configure the react-native app to be able to find the shared code in the workspaces.