'class로 react선언'에 해당되는 글 1건

  1. 2021.03.25 React 클래스로 선언, 자식컴포넌트

React 클래스로 선언, 자식컴포넌트

카테고리 없음 2021. 3. 25. 17:06

App.js:

import './App.css'
import React from 'react';
const username = "annonymous"

class Twittler extends React.Component{
    constructor(props){
        super(props)
        this.state = {
            tweets: []
        }
        this.handleButtonClick = this.handleButtonClick.bind(this)
    }
    handleButtonClick(){
        let tweetArr = this.state.tweets.slice()
        tweetArr.push({username: username, text: document.getElementById("textBox").value, time: new Date().toLocaleTimeString()})
        this.setState({tweets: tweetArr})
    }
    render(){        
        return (
            <header className="App-header">
				<div className="textBox-Button">
                    <textarea id="textBox"></textarea>
					<NewTweetForm handleButtonClick = {this.handleButtonClick} />
				</div>
                <div id = "tweets">
                    <Tweets arr = {this.state.tweets}/>
                </div>
                <div>this is app2</div>
			</header>            
        )
    }
}

function NewTweetForm({handleButtonClick}){
    let handleClick = ()=>{
        handleButtonClick()
    }
    return <button id= "postButton" onClick= {handleClick.bind(this)} >Post</button>
}
function makeArr(arr){
    return arr.map((el,idx)=>{
        return <li key = {idx.toString()}>
            <div>{el.username}</div>
            <div>{el.text}</div>
            <div>{el.time}</div>
            <hr/>
        </li>
    })
}

function Tweets ({arr}){   
    return (
        <ul id = "ul">{                
            makeArr(arr)
        }</ul>
    )
}


function App(){
    return (
		<div className="App">
			<Twittler />
		</div>
	);
}
export default App

index.js:

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';

ReactDOM.render(
    <App />,
  document.getElementById('root')
);

// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();
: