Reactjs 如何根据用户';s操作系统

Reactjs 如何根据用户';s操作系统,reactjs,operating-system,conditional-rendering,Reactjs,Operating System,Conditional Rendering,我正在寻找一种解决方案,根据用户的操作系统有条件地呈现React内容 我有一个简单的组件,可以显示键盘快捷键,与我正在使用的另一个组件进行交互。在这种情况下,Windows和Linux的键盘快捷键用于显示ctrl+[action]。但是对于MacOS它需要显示cmd+[action] 以下是我的组件: import React from 'react'; import { ShortcutsContainer, MetaRow } from '../../styles'; const Sho

我正在寻找一种解决方案,根据用户的操作系统有条件地呈现
React
内容

我有一个简单的组件,可以显示键盘快捷键,与我正在使用的另一个组件进行交互。在这种情况下,
Windows
Linux
的键盘快捷键用于显示
ctrl+[action]
。但是对于
MacOS
它需要显示
cmd+[action]

以下是我的组件:

import React from 'react';

import { ShortcutsContainer, MetaRow } from '../../styles';

const Shortcuts = () => (
  <ShortcutsContainer>
    <h1>Keyboard Shortcuts</h1>
    <MetaRow>
      <strong>ctrl + click</strong>
      <span> to start editing value</span>
    </MetaRow>
    <MetaRow>
      <strong>ctrl + Enter</strong>
      <span> to submit changes</span>
    </MetaRow>
    <MetaRow>
      <strong>Escape</strong>
      <span> to cancel editing</span>
    </MetaRow>
  </ShortcutsContainer>
);

export default Shortcuts;
从“React”导入React;
从“../../styles”导入{ShortcutsContainer,MetaRow};
常量快捷方式=()=>(
键盘快捷键
ctrl+单击
开始编辑值
ctrl+Enter
提交更改
退出
取消编辑
);
导出默认快捷方式;
让我们从中选择ctrl+click

我想要的是这样的东西:

<strong>{getUserOS() === 'MacOS' ? 'cmd' : 'ctrl'} + click</strong>
{getUserOS()==='MacOS'?'cmd':'ctrl'}+单击
我将如何做到这一点?我们一直在努力找到一种获取用户操作系统的方法。

也许我们可以使用模块来实现这一点

只是
var platform=require('platform')
it并使用
platform.os
获取操作系统。

也许我们可以使用模块来实现这一点

window.navigator.platform
只是
var platform=require('platform')
it并使用
platform.os
获取操作系统

window.navigator.platform
返回为哪个平台编译浏览器


返回编译浏览器的平台

好的,多亏@MiguelCalderón推荐我去检查一下vanilla JS解决方案。我检查了一下,得到了一个适用于这个用例的解决方案

我创建了这个简单的小函数:

const cmdOrCtrl = () => (window.navigator.platform.match(/^Mac/) ? 'cmd' : 'ctrl');
然后按如下方式实施:

<strong>{cmdOrCtrl()} + click</strong>
{cmdOrCtrl()}+单击

好的,多亏@miguelcarderón推荐我去查看香草JS解决方案。我检查了一下,得到了一个适用于这个用例的解决方案

我创建了这个简单的小函数:

const cmdOrCtrl = () => (window.navigator.platform.match(/^Mac/) ? 'cmd' : 'ctrl');
然后按如下方式实施:

<strong>{cmdOrCtrl()} + click</strong>
{cmdOrCtrl()}+单击

如果我没弄错你的问题,你会对了解用户的操作系统感兴趣。 你可以用这样的东西

getUserOs= () =>{
 return window.navigator.platform;
} 

如果我没有弄错你的问题,你会对了解用户的操作系统感兴趣。 你可以用这样的东西

getUserOs= () =>{
 return window.navigator.platform;
} 

因此,真正的问题似乎是:如何使用Javascript检测用户操作系统?你可以在这里查看一些答案:是的,你是对的@miguelcarderón,谢谢你!因此,真正的问题似乎是:如何使用Javascript检测用户操作系统?你可以在这里查看一些答案:是的,你是对的@miguelcarderón,谢谢你!