V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  particlec  ›  全部回复第 48 页 / 共 48 页
回复总数  952
1 ... 39  40  41  42  43  44  45  46  47  48  
好看
全部相关的代码已经在三楼了,selectProductKey 的值只在三楼 setSelectProductKey 处改变过,,temporaryArr 就是一个 string[]结构,我已经打印了 temporaryArr 原数组没有改变
2022-05-25 11:45:33 +08:00
回复了 wb14123 创建的主题 Android 618 给父母买手机推荐?
之前买的是小米给我妈,然后她嫌弃像素不好,后来想以后买个 vivo ,反正他们不考虑性能,母亲的话只要好看拍照就行了
2022-05-25 11:42:08 +08:00
回复了 wb14123 创建的主题 Android 618 给父母买手机推荐?
相信我之前给他们买了手机,他们的要求跟我们完全不一样,首先拍照像素一定要好,然后屏幕大一点,其他的所有东西在他们眼中只是卡不卡的问题,没必要最求固定的牌子,像素拉满,最好防摔一点,因为他们不太会换屏
@shabbyin “老数组你没有保存其堆地址的话 就再也访问不到了” 请教 老数组为啥访问不到,setSelectProductKey 为什么会指向新数组呢
不是 slice 的问题,换成 includes 也会出现同样的问题,应该跟 setSelectProductKey 有关
我打印了一下,发现原数组 temporaryArr 确实没有改变,就是 setSelectProductKey(temporaryArr);为啥没指向原数组
嗯,slice 确实要改成 includes ,主要是那个引用问题还不是很理解
console.log(temporaryArr);
temporaryArr =['a1k8ySyJMPn', 'a1mXxl1AJOa', 'a1T2vgkO3L7', 'a1xaURWP4fN', 'a1oCgqebiVr', 'a1OSLcORuwH', 'a1StepeOwMD', 'a1oAnKZ7Clp', 'a1M4rSzH9wr', 'a1Y2RSRhB8b']
setSelectProductKey(temporaryArr) state 不是会指向 temporaryArr 吗?为啥会指向新数组呢
const [selectProductKey, setSelectProductKey] = useState([]);

// 这是一个搜索框的功能,通过 key 模糊筛选
const matchProductKey = key => {
let temporaryArr = [...productKeyArr];
// 这里 使用了 filter ,按道理原数组 temporaryArr 不会被改变
temporaryArr.filter(obj => obj.slice(key) !== -1);
// 如果原数组没有改变 selectProductKey 也不会改变
setSelectProductKey(temporaryArr);
};


matchProductKey(e);


// 但是实际界面 这里 selectProductKey 确实数据过滤了
{selectProductKey.map(key => (
<Select.Option value={key}>{key}</Select.Option>
))}
重新描述一下,第一次发帖问题顺序有点乱
// 这里 使用了 filter ,按道理 temporaryArr 不会被改变
temporaryArr.filter(obj => obj.slice(key) !== -1);

// selectProductKey 按道理也不会改变啊
setSelectProductKey(temporaryArr);
1 ... 39  40  41  42  43  44  45  46  47  48  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2954 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 19ms · UTC 12:39 · PVG 20:39 · LAX 04:39 · JFK 07:39
Developed with CodeLauncher
♥ Do have faith in what you're doing.