Skip to content

Instantly share code, notes, and snippets.

View eddyw's full-sized avatar
🏠
Working from home

Eddy Wilson eddyw

🏠
Working from home
View GitHub Profile
@eddyw
eddyw / refs-instance-of.jsx
Last active November 1, 2017 16:58
Suck Less at React: Understanding refs
import React from 'react'
import propTypes from 'prop-types'
import { render } from 'react-dom'
class Span extends React.Component {
static propTypes = {
children: propTypes.node.isRequired,
}
render() {
return <span>{this.props.children}</span>
const Form = ({ frmref, onSubmit }) => (
<form ref={frmref} onSubmit={onSubmit}>
<input name="example" type="text" />
</form>
)
@eddyw
eddyw / bas-refs.jsx
Created November 1, 2017 17:11
Suck Less at React: Understanding refs
const SomeComponent = () => (
<span>Example</span>
)
// and later somewhere in your code
<SomeComponent ref={handleRefs} />
@eddyw
eddyw / map-component.js
Created November 11, 2017 16:19
Map Component
const todoList = [
{ title: 'Do laundry', completed: true },
{ title: 'Pet kitty', completed: false },
{ title: 'Secret Project', completed: false },
]
@eddyw
eddyw / map-component.js
Created November 11, 2017 16:23
Map Component
const TodoList = () => (
<ul>
{todoList.map((item, key) => (
<li key={key}>{item.title} : {String(item.completed)}</li>
))}
</ul>
)
@eddyw
eddyw / map-component.js
Created November 11, 2017 16:31
Map Component
const completedStyle = { color: 'green' }
const uncompletedStyle = { color: 'red' }
const TodoList = () => (
<ul>
{todoList.map(({ title, completed }, key) => (
<li key={key}>
<span>{completed ? 'o' : 'x'} </span>
<span style={completed ? completedStyle : uncompletedStyle}>{title}</span>
</li>
))}
@eddyw
eddyw / map-component.js
Last active November 11, 2017 17:02
Map Component
const completedStyle = { color: 'green' }
const uncompletedStyle = { color: 'red' }
const Item = ({ title, completed }) => (
<li>
<span>{completed ? 'o' : 'x'} </span>
<span style={completed ? completedStyle : uncompletedStyle}>{title}</span>
</li>
)
@eddyw
eddyw / map-component.js
Created November 11, 2017 17:16
Map Component
const completedStyle = { color: 'green' }
const uncompletedStyle = { color: 'red' }
const Item = ({ title, completed }) => (
<li>
<span>{completed ? 'o' : 'x'} </span>
<span style={completed ? completedStyle : uncompletedStyle}>{title}</span>
</li>
)
const TodoList = () => (
<ul>
@eddyw
eddyw / map-component.js
Last active November 11, 2017 19:05
Map Component
const Item = ({ title, completed, check, style, className }) => (
<li className={className}>
<span>{check} ({String(completed)}) </span>
<span style={style}>{title}</span>
</li>
)
const map = item => ({
...item,
check: item.completed? 'o' : 'x',
style: item.completed? { color: 'gree' } : { color: 'red' },
@eddyw
eddyw / map-component.js
Last active November 11, 2017 19:08
Map Component
class MapArray extends React.Component {
static propTypes = {
from: propTypes.array.isRequired,
children: propTypes.element.isRequired,
map: propTypes.func,
}
static defaultProps = {
map: e => e,
}
shouldComponentUpdate(nextProps) {