gpt4 book ai didi

reactjs - Meteor React Komposer : Execute Component Constructor AFTER ready subscription

转载 作者:行者123 更新时间:2023-12-03 14:09:42 25 4
gpt4 key购买 nike

我有一个 React 组件Post:

export class Post extends React.Component {
constructor(props) {
this.state = this.props;
}
...
}

,我用它来创作

import { composeWithTracker } from 'react-komposer';

从“react-komposer”导入{ composeWithTracker };从 '../components/post.jsx' 导入帖子;

function composer(props, onData) {
const subscription = Meteor.subscribe('post', props.postId);

if (subscription.ready()) {
const data = {
ready: true,
posts: Posts.findOne(props.postId).fetch()
}
onData(null, data);
} else {
onData(null, {ready: false});
}
}

export default composeWithTracker(composer)(Post);

。正如Post组件中给出的,我想将一些属性放入组件的状态中,但是构造函数将在我从 Composer 获取数据之前执行!

如何等到数据发送后将我的 props 置于 state 中?

这不是 React Kompose 应该做的吗?顺便说一句,我正在使用版本 1.~ 来获取 composeWithTracker

最佳答案

您可以使用componentWillReceiveProps来获取新属性并设置为组件状态。每当有新属性传递给组件时,该函数就会运行:

export class Post extends React.Component {
// ...
componentWillReceiveProps(nextProps) {
this.setState({
...nextProps,
});
}
// ...
}

关于reactjs - Meteor React Komposer : Execute Component Constructor AFTER ready subscription,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42107246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com