我正在尝试从 firebase 获取数据并使用 useState 挂钩将检索到的数据设置为我的状态。我知道我的 API 调用正在工作,因为我可以从 firebase 记录数据,但是当我使用 setState() 时它没有以我的状态结束,由于某种原因,我最终只有一个空数组处于状态。我错过了什么?
const Collection = () => {
const [ dreams, setDreams ] = useState([])
useEffect(() => {
const retrieveCollection = (userId) => {
firebase.firestore().collection('Dreams')
.where('user', '==', userId)
.onSnapshot(snapshot => {
let newDreams = snapshot.docChanges()
newDreams.forEach(doc => {
console.log(doc.doc.data())
setDreams([...dreams, doc.doc.data()])
console.log(dreams)
})
})
}
retrieveCollection('N25c9lKITZQ7JtPEZSrMX6uC7Ot2')
}, [])
Run Code Online (Sandbox Code Playgroud) 我的应用程序中有一个创建帐户表单,现在在运行 13+ 的 iOS 设备上我遇到了一个问题,如果用户在输入密码时按下“完成”键,正常的安全密码点将替换为以下内容(请参阅以下)。如何禁用此行为以使其像在旧设备上一样继续工作?
我将 React Native 项目从所有类组件转换为带有钩子的功能组件。我有一个带有 ScrollView 的消息页面,可以自动滚动到底部。我如何将其转换为在功能组件中工作?使用 ref 和 this.scrollView 会导致错误。
<ScrollView
ref={ref => this.scrollView = ref}
onContentSizeChange={(contentWidth, contentHeight)=> {this.scrollView.scrollToEnd({animated: true})}}
>
{...content...}
</ScrollView>
Run Code Online (Sandbox Code Playgroud)