Javascript 在我的文本框中,当我键入123并按1-23进行编辑时,我需要触发一个单独的api调用

Javascript 在我的文本框中,当我键入123并按1-23进行编辑时,我需要触发一个单独的api调用,javascript,html,reactjs,redux,Javascript,Html,Reactjs,Redux,在我的文本框中,当我键入123并按1-23进行编辑时,我需要触发一个单独的api调用,对于123,我需要执行单独的api调用,但现在它捕获了onChange api调用。当我在数字之间输入破折号时,我应该调用另一个api,但它在更改时调用相同的api 我找到了这些链接,但没有任何帮助 你能告诉我怎么修吗 我在下面提供我的代码片段和沙盒。所有我的代码都存在于containers文件夹中的Button.js中: 功能使用黑客新闻(道具){ const channel=useSelector(st

在我的文本框中,当我键入123并按1-23进行编辑时,我需要触发一个单独的api调用,对于123,我需要执行单独的api调用,但现在它捕获了onChange api调用。当我在数字之间输入破折号时,我应该调用另一个api,但它在更改时调用相同的api

我找到了这些链接,但没有任何帮助

你能告诉我怎么修吗

我在下面提供我的代码片段和沙盒。所有我的代码都存在于containers文件夹中的
Button.js
中:

功能使用黑客新闻(道具){
const channel=useSelector(state=>state.channel);
const dispatch=usedpatch();
const getPosts=channel=>dispatch(fetchPosts(channel));
const getAlert=()=>分派(displayAlert());
document.onmouseup=()=>{
log(window.getSelection().toString());
};
const onKeyDown=e=>{
控制台日志(“e.keyCode”,e.keyCode);
如果(如keyCode===8){
log(“delete-->”,e.target.value);
getPosts(频道);
如果(e.target.value==“”){
log(“onKeyDown删除空值-->”,e.target.value);
检索(频道);
}
}
};
const onMouseUp=e=>{
log(“onMouseUp e.keyCode”,e.keyCode);
if(window.getSelection().toString().length>0)返回;
如果(e.target.value==“”){
log(“onMouseUp删除空值-->”,e.target.value);
检索(频道);
}
};
返回(
{
如果(e.target.value==“”){
返回;
}
log(“onChange e.target.value-->”,e.target.value);
getPosts(频道);
}}
onKeyDown={()=>{
//getPosts(频道);
onKeyDown();
}}
onMouseUp={()=>{
//getPosts(频道);
onMouseUp();
}}
//onKeyDown={onKeyDown}
//onMouseUp={this.onMouseUp}
/>
);
}

如果我了解您需要什么,解决方案就在这里->

HTML


如果我了解您需要什么,解决方案就在这里->

HTML


... 修理什么?你能说清楚一点吗?这些代码的作用是什么?为什么它会出错?@M.Prokhorov每当我在两个数字之间输入破折号时,我都应该调用另一个api,但它在更改中调用相同的api:(那是因为你从不检查输入的值是否有破折号。你试图解决什么问题?另外,改进后的应用程序会非常有用,而不是你链接到这里的完整应用程序……修复什么?你能更清楚一点吗?这些代码都是做什么的?为什么它出错?@M.Prokhorov当我输入时数字之间的破折号我应该调用另一个api,但它在更改时调用同一个api:(那是因为你从未检查输入的值是否有破折号。你试图解决什么问题?此外,改进的api将非常有用,而不是你在此处链接的完整应用程序。
<div>
  <input type="text" ></input>
</div>
// variables
var input = document.querySelector("input");

// events
input.onkeyup = function(e) {
  const value = this.value
  if (value.includes("-")) {
    console.log(`call rest API 1 to ${value}`)
    // redirect to API 1
  } else {
    // redirect to API 2
    console.log(`call rest API 2 to ${value}`)
  }
};