Skip to content

Instantly share code, notes, and snippets.

View ryanjyost's full-sized avatar

Ryan Yost ryanjyost

View GitHub Profile
@ryanjyost
ryanjyost / App.js
Created April 21, 2018 20:29
Final App.js with react-simple-storage
import React, { Component } from "react";
import logo from "./logo.svg";
import "./App.css";
import SimpleStorage from "react-simple-storage";
class App extends Component {
constructor(props) {
super(props);
this.state = {
newItem: "",
@ryanjyost
ryanjyost / App.js
Last active April 21, 2018 20:25
Include SimpleStorage component in App's render method
//... everything is the same above
render() {
return (
<div className="App">
{/* This is all you need to add */}
<SimpleStorage parent={this} />
//...etc.
@ryanjyost
ryanjyost / App.js
Created April 21, 2018 20:21
Import SimpleStorage
import React, { Component } from "react";
import logo from "./logo.svg";
import "./App.css";
import SimpleStorage from "react-simple-storage";
class App extends Component {
//... etc.
@ryanjyost
ryanjyost / App.js
Last active June 3, 2022 01:59
Updated with localStorage methods
import React, { Component } from "react";
import logo from "./logo.svg";
import "./App.css";
class App extends Component {
constructor(props) {
super(props);
this.state = {
newItem: "",
list: []
@ryanjyost
ryanjyost / App.js
Created April 21, 2018 18:50
bereforeunload listener, saveStateToLocalStorage
componentDidMount() {
this.hydrateStateWithLocalStorage();
// add event listener to save state to localStorage
// when user leaves/refreshes the page
window.addEventListener(
"beforeunload",
this.saveStateToLocalStorage.bind(this)
);
}
@ryanjyost
ryanjyost / App.js
Created April 21, 2018 17:47
saveStateToLocalStorage()
saveStateToLocalStorage() {
// for every item in React state
for (let key in this.state) {
// save to localStorage
localStorage.setItem(key, JSON.stringify(this.state[key]));
}
}
@ryanjyost
ryanjyost / App.js
Created April 21, 2018 15:57
componentDidMount(), hydrate state
componentDidMount() {
this.hydrateStateWithLocalStorage();
}
@ryanjyost
ryanjyost / App.js
Last active May 7, 2019 16:43
hydrateStateWithLocalStorage()
hydrateStateWithLocalStorage() {
// for all items in state
for (let key in this.state) {
// if the key exists in localStorage
if (localStorage.hasOwnProperty(key)) {
// get the key's value from localStorage
let value = localStorage.getItem(key);
// parse the localStorage string and setState
try {
@ryanjyost
ryanjyost / App.js
Created April 17, 2018 03:29
deleteItem() with localStorage
deleteItem(id) {
// copy current list of items
const list = [...this.state.list];
// filter out the item being deleted
const updatedList = list.filter(item => item.id !== id);
this.setState({ list: updatedList });
// update localStorage
localStorage.setItem("list", JSON.stringify(updatedList));
@ryanjyost
ryanjyost / App.js
Last active June 3, 2022 01:59
addItem() with localStorage
addItem() {
// create a new item
const newItem = {
id: 1 + Math.random(),
value: this.state.newItem.slice()
};
// copy current list of items
const list = [...this.state.list];