, SubscriptionForm
다시 렌더링하지 않습니다 내 가게 업데이트 : 년내 구성 요소에게 내가 가게를 만들고 하위 구성 요소에 전달 최상위 구성 요소가
App.js
import React, { Component } from 'react';
import Navbar from './components/Navbar.js';
import SubscriptionForm from './components/SubscriptionForm.js';
import { createStore } from 'redux'
import rootReducer from './reducers'
const store = createStore(rootReducer)
class App extends Component {
render() {
return (
// Navbar
<div>
<Navbar/>
<SubscriptionForm store={store} />
</div>
);
}
}
export default App;
을 내 SubscriptionForm 구성 요소, 양식을 렌더링합니다. 사용자가 양식을 제출하면 상점을 업데이트하기위한 작업을 전달합니다. 이것은 내가 붙어있는 곳입니다. 렌더링이 다시 호출되지 않습니다.
import React from 'react';
class SubscriptionForm extends React.Component {
constructor(){
super();
this.handleSubmit = this.handleSubmit.bind(this);
}
handleSubmit(e) {
e.preventDefault();
this.props.store.dispatch({type: 'SET_SUBSCRIBED'})
//TODO: persist data to db
}
render() {
if(this.props.store.getState().subscription){
return (
<p>Hi</p>
)
}else{
return (
<form onSubmit={this.handleSubmit} className='subscription-form'>
<input type='text' placeholder='email' />
<input type="submit" name="commit" />
</form>
)
}
}
}
export default SubscriptionForm;
감속기하는 index.js
import { combineReducers } from 'redux'
const initialSubscription = {
subscribed: false
}
const subscription = (state = initialSubscription, action) => {
switch (action.type) {
case 'SET_SUBSCRIBED':
return true
default:
return state.subscribed
}
}
const rootReducer = combineReducers({
subscription
})
export default rootReducer
구성 요소가 다시 쓰게하지 않습니다/때 구성 요소의 변경의 상태 나 소품? (여기서 내가 여기서 놀고 있니?)
최고, 감사합니다. 그것을 구현하기 전에 redux 튜토리얼의 나머지 부분을 끝내야한다. – Huy