小编cho*_*eds的帖子

如何在 React 中使用 i18next 更改语言

我正在尝试将 i18next 翻译系统添加到我的 React 应用程序中,并且我已经配置了所有内容,但我似乎找不到如何更改语言(例如,使用选择或按钮)。

我按照这个简单的指南来设置整个过程。但没有关于如何手动更改语言的信息。而且,正如您在此处看到的,有一个更改语言的函数,但它位于函数组件内:

function Page() {
const { t, i18n } = useTranslation();

  const changeLanguage = lng => {
    i18n.changeLanguage(lng);
  };

  return ([...])
}
Run Code Online (Sandbox Code Playgroud)

但是,我的组件是一个从组件扩展的类,它的工作方式似乎不同:

class Profile extends Component {
  [...]
}
export default withTranslation()(Profile);
Run Code Online (Sandbox Code Playgroud)

那我该怎么办呢?我不知道。

javascript internationalization i18next reactjs

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

在Nodejs + Mongoose中异步/等待

我是Promises和async / await编程的新手,但不确定自己是否会理解。我正在使用Express,Mongoose和MongoDB在Node.js中创建API。我已经看过很多关于如何处理异步性的教程,但是它们都是关于NodeJs项目的,这些项目的路由和数据库查询都在同一个文件中。例:

const asyncMiddleware = fn =>
  (req, res, next) => {
    Promise.resolve(fn(req, res, next))
      .catch(next);
};

router.get('/users/:id', asyncMiddleware(async (req, res, next) => {
    const something = await getSomethingFromDb({ id: req.params.id })
    res.json(something);
}));
Run Code Online (Sandbox Code Playgroud)

但是,为清楚起见,我已将路由与控制器分开,但我严重怀疑是否正确完成了路由。这是我的代码:

router.js

const asyncMiddleware = fn =>
  (req, res, next) => {
    Promise.resolve(fn(req, res, next))
      .catch(next);
};

router.get('/something/:id', asyncMiddleware(async (req, res, next) => {
    const answer = await somethingController.findById(req, res, next)
}));
Run Code Online (Sandbox Code Playgroud)

controller.js

exports.findById = async (req, res, next) => {
    const something = await …
Run Code Online (Sandbox Code Playgroud)

javascript mongoose node.js express async-await

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