redux - helloworld - PttPosts

Install react and react-redux
npm install --save react react-redux

src/actions/index.js
export const selectPttPost = pttPost => {
    return {
        type: "PTT_POST_SELECTED", //required attribute
        payload: pttPost
    };
};

src/components/PttPosts.js
import React, {Component} from "react";
import {connect} from 'react-redux'

class PttPosts extends Component {
    render() {
        console.log("render")
        return <div>PttPosts</div>
    }
}

const mapStateToProps = (state) => {
    console.log(state)
    return state;
}

export default connect(mapStateToProps)(PttPosts)

src/reducers/index.js
import { combineReducers } from 'redux';

export const pttPostsReducer = () => {
    return [
        {title:'Article AAAA', author:"author AAA"},
        {title:'Article BBBB', author:"author BBB"},
        {title:'Article CCCC', author:"author CCC"},
        {title:'Article DDDD', author:"author DDD"},
    ];
};

export const selectedPttPostReducer = (selectedPttPost = null, action) => {
     if (action.type === 'PTT_POST_SELECTED') {
        return action.payload;
     }
     return selectedPttPost;
}

export default combineReducers({
    pttPosts: pttPostsReducer,
    selectedPttPost: selectedPttPostReducer
})

src/App.js
import React from 'react';
import PttPosts from "./components/PttPosts";

function App() {
  return (
    <div>
      <PttPosts />
    </div>
  );
}

export default App;

src/index.js
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import {createStore} from 'redux'
import { Provider } from 'react-redux'
import reducers from './reducers' // Can't use {reducers}

ReactDOM.render(
      <Provider store={createStore(reducers)} >
          <App />,
      </Provider>,
  document.getElementById('root')
);


沒有留言:

張貼留言

別名演算法 Alias Method

 題目 每個伺服器支援不同的 TPM (transaction per minute) 當 request 來的時候, 系統需要馬上根據 TPM 的能力隨機找到一個適合的 server. 雖然稱為 "隨機", 但還是需要有 TPM 作為權重. 解法 別名演算法...