我正在使用 AppBase.io 作为数据库,但我不明白为什么这个组件在获得一个项目后会呈现两次?似乎 AppBase“数据库”首先返回未定义,然后返回正确的项目。有人知道为什么吗?查看示例,我在其中获得了 2 个日志。
在这个组件中,我需要从数据库中获取一个项目并呈现它(没什么特别的)。
谢谢解释。
var appbaseRef = new Appbase({
url: "https://JHtFTzy4H:d083068b-596c-489d-9244-8db2ed316e79@scalr.api.appbase.io",
app: "winwin"
});
class ItemFull extends React.Component {
constructor() {
super();
this.state = {
item: ''
}
}
componentWillMount() {
appbaseRef.get({
type: "items",
id: 'AWI5K7Q-5Q83Zq9GZnED'
}).on('data', (response) => {
this.setState({
item: response
});
}).on('error', function(error) {
console.log(error)
})
}
render() {
console.log(this.state.item._id, '<-- console_log');
return (<div></div>);
}
}
ReactDOM.render(<ItemFull /> , document.getElementById('root'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/appbase-js/2.2.11/appbase.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="root"></div>