※ 引述《jp956956 (储备里长伯)》之铭言:
: https://imgur.com/UIr0fyc
: 大家好
: 最近用firebase做网页
: 就照着她的范本下去做修改
: 现在想要做出一个点击图片可切换内容的效果
: 比如
: 点了香蕉的图片 就会取得香蕉的内容
: 点了苹果的图片 就会取得苹果的内容
: 做了一个没有问题发生
: 点击香蕉图片确实连到的database里面
: 节取出来里面的资料内容
: 后来再用相同方法去做苹果的图片
: 点击进去却发生了香蕉跟苹果的内容一起出现
: 我定义的var名称是不同的还有资料路径也是不同
: 但是却发生两个同时显示的事情
: 我在想是虽然定义了两个
: 但是两个都会同时作用
: 所以才会不管点击哪一个图片
: 都会取得全部的内容
: 所以想说应该使用function的方式去解决问题
: 让它一次只作用一个函数
: var houseRef = firebase.database().ref('housecontain/香蕉');
这段程式码的翻译:
定义houseRef是个Ref Object,参照路径是'housecontain/香蕉'
欸诺...要是个Ref Object才读得到值这个不用解释了吧
: 他一开始是这个变量 可以正常的去抓到资料显示
: 后来我改成
: var houseRef = function house(name){
: return firebase.database().ref('housecontain/' + name);
: };
正确步骤:
1. 用arrow function定义创造凾式
var houseRefCreator = (name) => firebase.database().ref('housecontain/' + name)
2. 创造Ref object
var ref_of_somthing = houseRefCreator('something')
上述步骤的翻译:
步骤1
houseRefCreator是一个[Ref object创造凾式],
创造出来的Ref object的参照路径为['housecontain' + 某个名字]
步骤2
ref_of_something是一个[Ref object创造凾式]拿了'something'创造出来的Ref object
使用ref_of_somthing可读到'housecontain/something'路径的值
: 就无法顺利作用了
: 不知道是我没有把name输入还是我函式定义错误了
: 卡在这边不知道要如何输入它的[email protected]@
: listeningFirebaseRefs.push(houseRef);
: fetchhouse(houseRef, houseSection);
fetchhouse拿Ref object才动得了
给他creator要嘛报错,要嘛name就是undefined然后读到root
: 它显示的地方是这两个
: 我也把houseRef改成 house()
: 不过一样无法作用
: 不知道要怎么样才能把name值输入
: 让它可以抓到不同的资料呢?
建议
1. JS基础语法的部分要加强一下,再练习firebase
2. code要贴就完整贴,懂的人可以直接帮你改成正确的code,不然讲再多都是通灵,用图片也是可以但总会缺上下文,缺上下文就是通灵的一种型态