我正在尝试使用Material UI 组件库中的Select和制作一个界面Input。我希望我的 UI/UX 的当前行为按以下顺序显示:1. 用户从Select元素 2 中选择选项。Input当用户从中选择某些内容时将聚焦Select
你可以看到它是如何工作的(参见第二个Select,因为第一个是原生的Select,它不适合我的目的):https :
//codesandbox.io/s/l4nq3pjjrm
上面示例中的第一个效果很好,但我需要非本地变体。
我怎么能做到这一点?谢谢。
PS 另外,我发现该错误Select行为还有另一个问题,请查看我的 github 帖子以了解详细信息。( https://github.com/mui-org/material-ui/issues/11964 )
最近我对 javascript 提升行为感到困惑,现在我陷入了困境。
所以,有两个例子。
var alpha = 'alpha';
var beta = 'beta';
f(); //beta
var f = function f1() {
console.log(beta);
};
function f() {
console.log(alpha);
}
f(); // alphaRun Code Online (Sandbox Code Playgroud)
第一个按预期工作,因为当 Javascript 设置词法环境时,函数声明会覆盖我们的变量 f(值为“未定义”)。
但第二个给了我动力,我不明白一些事情。
var alpha = 'alpha';
var beta = 'beta';
f(); // - alpha
function f() {
console.log(alpha);
}
var f = function f1() {
console.log(beta);
};
f(); // betaRun Code Online (Sandbox Code Playgroud)
为什么变量f没有提升到代码的顶部,并覆盖之前我们提升的函数?为什么在“first f”调用中我收到“alpha”。我认为,这一定是一个错误,如:“f 不是函数”,因为在第一个 f调用中,我例外, f 将是“未定义”。
我的Ttslint会抛出这种结构的警告(禁止使用Array的数组类型.使用T [代替(array-type)):
Array<string | null> | null
Run Code Online (Sandbox Code Playgroud)
这是否正确替换上一个?
(string | null)[] | null
Run Code Online (Sandbox Code Playgroud) 我想把两个正则表达式合二为一,但我不知道如何在我的情况下做到这一点.所以,我想做下一件事:格式化为US格式的函数,只需添加1000的逗号,就像1000等等.(我知道toLocaleString('en-US'),Intl.NumberFormat.prototype.format但这些不适合我的情况).为了使用正则表达式,我尝试了这个表达式:/\d(?=(\d{3})+\.)/g它运行良好,但只有当我们的数字包含点(例如1000.23),但如果没有点,则当前的正则表达式将不起作用.(证明: https ://regex101.com/r/93O0gJ/1)
还有另一个正则表达式,我必须使我的功能正常工作:/\d(?=(\d{3})+$)/g但它只有在我们根本没有点时才能正常工作.如果我们有点,它将用逗号替换浮点数或小数部分,并且它不符合我的要求.(对于编号1000.12345678,我的编号类似于"1000.12,345,678").但是没有数字点,一切都运作良好.(证明:https://regex101.com/r/BHikK7/1)
所以,对于我的情况,我创建了一个函数来检查:如果数字有点,我使用第一个正则表达式,如果没有,我使用第二个:
const formatNumberToUSFormat = (numberToFormat: number):string => {
const stringNumber = numberToFormat.toString()
return stringNumber.match(/\./g) ?
stringNumber.replace(/\d(?=(\d{3})+\.)/g, '$&,') :
stringNumber.replace(/\d(?=(\d{3})+$)/g, '$&,')
}
Run Code Online (Sandbox Code Playgroud)
我的主要问题 - 如何在我的情况下将两个正则表达式合二为一,以避免对点进行不必要的检查等等.提前致谢.
javascript ×3
typescript ×2
arrays ×1
element ×1
function ×1
hoisting ×1
reactjs ×1
regex ×1
variables ×1