V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  particlec  ›  全部回复第 47 页 / 共 47 页
回复总数  929
1 ... 38  39  40  41  42  43  44  45  46  47  
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 ... 38  39  40  41  42  43  44  45  46  47  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   977 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 21ms · UTC 20:49 · PVG 04:49 · LAX 12:49 · JFK 15:49
Developed with CodeLauncher
♥ Do have faith in what you're doing.