THẢO LUẬN

thg 11 18, 2019 6:39 SA

@buihieubthc2rb ah action của mình nè:

const mapDispatchToProps = (dispatch, ownProps) => {
  return {
    sendEditDataToStore: (sendEditData) => {   dispatch({type:"GET_EDIT_DATA",sendEditData}) }
  }
}

Lúc này mới gửi qua store, mà mình bị kẹt ở bước lấy nên chưa gửi qua được. (Phải bấm nút Save thì action này mới thực thi)

+1
thg 11 18, 2019 6:25 SA

"Để có sử dụng ta phải đăng ký nó trong function bool() của AppServiceProvider". Này là boot() hả tác giả hay tạo 1 cái bool() ?!

0
thg 11 18, 2019 5:57 SA

@quocdungabc

//Lấy dữ liệu từ form Edit và gán vào state
  isChange = (event) => {
    
    const name = event.target.name;
    const value = event.target.value;
    this.setState({[name]: value});
  }

Nhưng mà ở hàm onChange này thì bạn mới chỉ làm thay đổi state nội bộ, chưa thấy có gọi đến action thay đổi store. Còn ở render thì bạn vẫn dùng prop (lấy từ store). Có vẻ là vấn đề ở đây.

0

async await với promise call back nó đều có ưu nhược điểm riêng, ko cái nào replace được cái nào cả.

+1
thg 11 18, 2019 5:30 SA

à chuẩn rồi bro =)) mình nhớ có 1 trường hợp vẫn dùng được cái mapping port kia nhưng ko tính là giao tiếp giữa container vì là run outside the container. (nhớ nhầm sang trường hợp đó nên phản pháo ngay =)) ) đúng là phải có 1 cái để ánh xạ chung thì các container mới giao tiếp được với nhau, thank bro vì góp ý nhé. để mình edit lại đoạn đầu bài viết :v lú quá :v

0
thg 11 18, 2019 5:21 SA

mình dùng tài khoản mặc định thì nó báo lỗi như trên

0

a cũng chúc e thành công nhiều hơn thế 😉

0

Cám ơn bạn đã theo dõi, có nhiều thứ mình muốn chia sẻ nhưng chưa nghĩ ra chủ đề phù hợp để viết, nhưng chắc sẽ có docker,server, ci/cd nhé, vì đấy cũng là món mình rất thích 😄

0

cám ơn e đã theo dõi, 😄

0

về việc dùng debugger thay vì console.log mình không có ý kiến gì 😃, tùy vào việc cái nào tiện cho bạn hơn và bạn thấy nó có ích hơn. Mình thì vẫn dùng console.log vì đôi khi code NodeJS debug trên terminal khá nhanh và tiện. Còn nếu bạn muốn dùng debugger thì cũng rất ok vì sẽ có được thông tin chi tiết hơn 😄. Ở trong bài mình cũng code note cho các bạn là xóa console.log trước khi commit, vì thực sự mình cũng khá bị đau mắt khi đọc code người khác mà toàn console.log 😉

0
thg 11 18, 2019 4:49 SA

khi mình install thì bị lỗi này Unable to locate publishable resources. và đăng nhập thì báo lỗi These credentials do not match our records. ai biết cách fix chỉ mình với thanks

0
thg 11 18, 2019 4:41 SA

Mình đọc nãy giờ mà chưa hiểu lắm. File store của mình thế này, giờ sửa lại như nào bạn.

//ĐÂY LÀ FILE store.js
import * as firebase from 'firebase';
import {gymData} from './firebaseConnect';
//Khai báo biến redux
let redux = require('redux');

//Khai báo reducer
const allReducerInitialState = {
  editData:{},
}
const allReducer = (state = allReducerInitialState, action) => {
  switch (action.type) {
    case "ADD_DATA":
      let ketnoi1 = firebase.database().ref('dataForGym');
      ketnoi1.push(action.customer);
      console.log("Thêm dữ liệu thành công!");
      return state

    case "GET_DATA"://Lấy dữ liệu đưa qua store khi bấm vào nút Edit
      return {...state,editData:action.getOneRow}

    case "GET_EDIT_DATA"://Lấy dữ liệu ĐÃ SỬA đưa qua store và update lên firebase
      let ketnoi2 = firebase.database().ref('dataForGym');
      ketnoi2.child(action.sendEditData.id).update({
        fullname:action.sendEditData.fullname,
        email:action.sendEditData.email,
        phonenumber:action.sendEditData.phonenumber,
        birthday:action.sendEditData.birthday,
        homeaddress:action.sendEditData.homeaddress,
        registrationdate:action.sendEditData.registrationdate,
        expirydate:action.sendEditData.expirydate
      })
      console.log("Cap nhat thanh cong!");
      return {...state,editData:{}} //update xong thì gán về rỗng

    default:
      return state
  }
}

//Khai báo store
let store = redux.createStore(allReducer);

//theo dõi state của store, thay đổi thì in ra màn hình
store.subscribe(function(){
  console.log(JSON.stringify(store.getState()));
})

export default store;

0
thg 11 18, 2019 4:40 SA
  • Mình muốn chạy trước khi render để có dữ liệu thì dùng DiDMount bị muộn rồi ạ.
  • state đó mình lấy bên store (editData) rồi phun ra form luôn chứ chưa đổ vào state nội bộ của form Edit được, hic. Đang vướng chỗ này.
  • Uhm, mình xài csdl firebase. Cảm ơn pác nhe.
0
thg 11 18, 2019 4:36 SA

state này mình lấy bên store nên chỉ readonly thôi, còn muốn update thì phải tìm cách gán vào state nội bộ của form Edit chứ, rồi từ đó ta gửi ngược lại qua store để cập nhật vào csdl. Theo kiến thức của mình biết là vậy. Hi. 😃

+1
thg 11 18, 2019 3:53 SA

nat port, hay forward port trong docker internal network ra ngoài local thì đó không phải là phương thức giao tiếp giữa các container.

ông có cái 2 cái container:

  • 1 là php nat port 8000:80
  • 1 là mysql nat port 33066: 3306

tôi hỏi ông là trong container php ông kết nối với mysql bằng outside:33066 hay inside:3306 ??

Đọc thêm mấy cái này nhé

https://docs.docker.com/v17.09/engine/userguide/networking/default_network/container-communication/#communicating-to-the-outside-world

https://docs.docker.com/v17.09/engine/userguide/networking/default_network/container-communication/#communication-between-containers

https://docs.docker.com/v17.09/engine/userguide/networking/#docker-and-iptables

còn nếu muốn container kết nối được với host chạy docker, ví dụ như container php kết nối mysql chạy bên ngoài thì phải dùng cách này:

https://stackoverflow.com/questions/24319662/from-inside-of-a-docker-container-how-do-i-connect-to-the-localhost-of-the-mach

+1
thg 11 18, 2019 3:47 SA

thế ăn thôi 😃)

0
thg 11 18, 2019 3:41 SA

hay đó, cũng đang đọc về ajax polling, long polling

+2

Thanks, updated.

+1

ok tks b nhé

0
thg 11 18, 2019 3:30 SA

Bài xịn vậy mà không ai quan tâm nhỉ 😄 Bài viết rất hay ạ 👍

0
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí