小编Gab*_*nus的帖子

在 React 中专注于 div,无需单击即可在模块上启用键盘导航

我正在 React 中从头开始编写一个图像库,当单击图像时,会弹出一个模式(与我的库组件不同的组件)。我想用左箭头和右箭头在图片之间导航,而不仅仅是使用屏幕上添加的箭头(onclick),但目前它只关注当我单击一次时的模式,然后我也可以使用键盘导航(onKeyDown)。

我已将 tabIndex="0" 添加到我的 div 中,但我仍然需要单击该 div 一次才能聚焦于它。

<div tabIndex="0" onKeyDown={(event) => this.onKeyNavigation(event, ImageUrl, currentIndex, ImageUrls)}>
Run Code Online (Sandbox Code Playgroud)
onKeyNavigation = (event, ImageUrl, currentIndex, ImageUrls) => {

if ((event.keyCode) === 39) {
    this.props.loadNext(ImageUrl, currentIndex, ImageUrls)
  }
  else if ((event.keyCode) === 37) {
    this.props.loadPrevious(ImageUrl, currentIndex, ImageUrls)
  }
  else if ((event.keyCode) === 27) {
    this.props.onClose()
  }
 }
Run Code Online (Sandbox Code Playgroud)

focus reactjs

5
推荐指数
1
解决办法
1万
查看次数

在同一个存储库中的 github 页面前端和后端上部署 React 应用程序

我正在尝试将带有后端的 React 应用程序部署到 github 页面上的同一个存储库中。在我向其中添加后端代码之前,一切正常。我可以部署前端,但我不知道如何将后端部署到github。在我的 package.json 中,我有以下内容:

....
    "scripts": {
    "start": "react-scripts start",
    "server": "nodemon server.js",
    "client": "npm run start --prefix client",
    "dev": "concurrently \"npm run server\" \"npm run client\""
  }
...
Run Code Online (Sandbox Code Playgroud)

我已经推送到github了。安装了 gh-pages 包。我已经添加了

"homepage" : "https://[your-user-name].github.io/[your-repo-name]/"
“predeploy”:
“deploy”:
Run Code Online (Sandbox Code Playgroud)

我认为这是我出错的地方。我知道 predeploy 和 deploy 应该指定什么,但我尝试输入一千个不同的版本,但出现错误。

deployment github reactjs

4
推荐指数
1
解决办法
4619
查看次数

从Firestore提取数据

因此,我尝试从Firestore中获取数据,当我对其进行控制台日志记录时,却将集合的内容取回,但是当我将代码移至某个函数时,便无法将其返回。

此代码有效:

const db = firebase.firestore();
db.settings({ timestampsInSnapshots: true});
db.collection('story').get().then((snapshot) => {
snapshot.docs.forEach(doc => {console.log(doc.data())
    ;})
})
Run Code Online (Sandbox Code Playgroud)

这行不通。(它可以编译,但是不返回任何内容):

...
getMyStory = () => {
        const db = firebase.firestore();
        db.settings({ timestampsInSnapshots: true});
        db.collection('story').get().then((snapshot) => {
        snapshot.docs.forEach(doc => {
            let items = doc.data();
        })
        });
        return this.items;
    }


    render () {


        return (
        <p>{this.getMyStory}</p>
);
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

firebase reactjs google-cloud-firestore

2
推荐指数
1
解决办法
5612
查看次数

为什么 update() 会完全覆盖我在 Firebase 中的数据?设置()与更新()

我已经浏览了 Firebase 文档,另外我在 Firebase 中找到了一些关于 set() 与 update() 的关于 stackoverflow 的主题:例如这里

很明显,他们两个之间的区别是什么。

在下面的代码中,为什么 update() 会覆盖我现有的数据?

function saveChanges(event) {
    event.preventDefault();
    let modifiedTitle = document.getElementById('blog-title').value;
    let modifiedContent = document.getElementById('blog-content').value;
    let modifiedId = document.getElementById('blog-id-storage').innerHTML;
    let postData = 
        title: modifiedTitle,
        content: modifiedContent
    };
    let updates = {};
    updates[modifiedId] = postData;
    firebase.database().ref().child('posts/').update(updates);
}
Run Code Online (Sandbox Code Playgroud)

我最初有一个标题、内容、datePosted 和 Id,当我更新它时,标题和内容会更新,而 dataPosted 和 Id 会被删除。为什么?虽然这应该是 set() 的行为?

前 后

javascript firebase firebase-realtime-database

1
推荐指数
1
解决办法
289
查看次数