コンポーネントがレンダリングされる前に初期データを取得したい。
したがって、私はcomponentWillMountで更新アクションを状態表示しようとします。
componentDidMountでコンソールの結果を確認すると状態は変わりますが、結果は空白です。react componentWillMountでのデータ設定の使い方は?
imageUpload.js
export const IMAGE_UPLOAD = 'IMAGE_UPLOAD';
export function imageUpload(photo) {
return {
type: IMAGE_UPLOAD,
photo
}
}
Reducers.js
import { IMAGE_UPLOAD } from './actions/imageUpload';
export default function imageUpload(state = {photo: ''}, action) {
switch(action.type) {
case IMAGE_UPLOAD:
return {
...state,
photo: action.photo
}
default:
return state
}
}
App.js私は何sholud
import photo from './data/photo.json' // photo type: json
import imageUpload from './actions/imageUpload'
componentWillMount() {
Storage.prototype.setObject = (key, value) => {
this.setItem(key, JSON.stringify(value))
}
Storage.prototype.getObject = (key) => {
return this.getItem(key) && JSON.parse(this.getItem(key))
}
const photoData = localStorage.getObject('photos');
if(photoData) // data in localStorage
imageUpload(photoData) // state setting localStorage data
else // data not in localStorage
imageUpload(photo) // state setting photo json data
}
componentDidMount() {
console.log(this.props.photo); // result: blank (I want result: any value)
}
class App extends React.Component {
// ...
}
const mapStateToProps = (state) => ({
photo: state.imageUpload.photos
})
const mapDispatchToProps = (dispatch) =>({
imageUpload: bindActionCreators(imageUpload, dispatch)
})
export default connect(mapStateToProps, mapDispatchToProps)(App)
?
ありがとうございます。
はmapStateToPropsでタイプミスではなく、 '写真の...そこにある:state.imageUpload.photos'それは'写真のようになります。state.imageUpload.photo' –
componentDidMount機能の場合接続されたコンポーネントの一部です(コードでは不明です)。そのオブジェクトには、そのオブジェクトの小道具がありません。あなたは子コンポーネントを見て、その小道具を見る必要があります。 –