Skip to content

Instantly share code, notes, and snippets.

@gujc71
gujc71 / App_BoardList.js
Last active November 4, 2018 02:00
react_firestore
~~ 생략 ~~
import {firebase_board_list} from './App_reducer';
class BoardList extends Component {
componentDidMount() {
this.props.dispatch(firebase_board_list());
}
render() {
const { boards} = this.props;
@gujc71
gujc71 / App_reducer.js
Created November 3, 2018 13:39
react_firestore
export const firebase_board_list = () =>{
return (dispatch) => {
return firestore.collection("boards").orderBy("brddate", "desc")
.onSnapshot(function(snapshot) {
snapshot.docChanges().forEach(function(change) {
var childData = change.doc.data();
if (change.type === "added") {
childData.brddate = dateFormat(childData.brddate, "yyyy-mm-dd");
dispatch(board_save(childData));
} else
@gujc71
gujc71 / App_reducer.js
Last active November 3, 2018 13:37
react_firestore
import { createAction, handleActions } from 'redux-actions';
import firestore from './Firestore';
~~ 생략 ~~
export const firebase_board_list = () =>{
return (dispatch) => {
return firestore.collection('boards').orderBy("brddate", "desc").get()
.then((snapshot) => {
var rows = [];
snapshot.forEach((doc) => {
@gujc71
gujc71 / App_BoardItem.js
Created November 3, 2018 12:17
redux_board
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { board_read, board_remove } from './App_reducer'
class BoardItem extends Component {
handleUpdateForm = (brdno) => {
this.props.dispatch(board_read(brdno));
}
@gujc71
gujc71 / App_BoardForm.js
Created November 3, 2018 12:16
redux_board
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { board_save } from './App_reducer'
class BoardForm extends Component {
state = {};
initialSelectedBoard = {
brdno: "",
brdtitle: "",
@gujc71
gujc71 / App.js
Last active November 3, 2018 12:12
redux_board
import React, { Component } from 'react';
import { connect } from 'react-redux';
import BoardForm from './App_BoardForm';
import BoardItem from './App_BoardItem';
class App extends Component {
render() {
const { boards} = this.props;
@gujc71
gujc71 / App_reducer.js
Created November 3, 2018 11:57
redux_board
const BOARD_SAVE = 'SAVE';
const BOARD_REMOVE = 'REMOVE';
const BOARD_READ = 'ONE';
const BOARD_LIST = 'LIST';
export const board_save = (data) => ({
type: BOARD_SAVE,
data
});
@gujc71
gujc71 / App6_BoardForm.js
Last active October 28, 2018 05:06
react_board
import React, { Component } from 'react';
class BoardForm extends Component {
shouldComponentUpdate(nextProps, nextState) {
let selectedBoard = nextProps.selectedBoard;
if (!selectedBoard.brdno) {
this.brdtitle.value = "";
this.brdwriter.value = "";
return true;
@gujc71
gujc71 / App5.js
Last active June 30, 2020 14:06
react_board
class App5 extends Component {
constructor(props) {
super(props);
this.child = React.createRef();
}
~~ 생략 ~~
handleSaveData = (data) => {
let boards = this.state.boards;
@gujc71
gujc71 / App5.js
Created October 28, 2018 03:35
react_board
class App5 extends Component {
~~ 생략 ~~
handleRemove = (brdno) => {
this.setState({
boards: this.state.boards.filter(row => row.brdno !== brdno)
})
}
~~ 생략 ~~
render() {