THẢO LUẬN

Avatar
đã bình luận câu trả lời trong câu hỏi
thg 8 29, 2019 6:39 SA

Cám ơn bạn đã giải thích rất chi tiết cho mình ạ 👍👍👍

+1
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 8 29, 2019 5:50 SA

@wiliamfeng Trong cách 1 có truyền props vào bác ôi

<Form.Item>
          {getFieldDecorator("username", {
            rules: [{ required: true, message: "Please input your username!" }]
          })(<Input placeholder="Username" />)}
        </Form.Item>

placeholder="Username" chính là props truyền vào trong Input đấy

+1
thg 8 29, 2019 4:36 SA

15 3 * * * /usr/bin/certbot renew --dry-run "/usr/sbin/service nginx reload"

0

anh ơi cho em hỏi, sao ở hàm khởi tạo CustomAuthoRequire mình

new List<UserTypeEnum>() { UserTypeEnum.Administrator }

cho AppceptUserTypes thế ạ??

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 8 29, 2019 3:59 SA

@wiliamfeng thực chất hàm getFieldDecorator() mà bạn thấy bên trong nó đã có sẵn các hàm hay các props phục vụ cho việc điền giá trị như props.value hay props.onChange rồi. Khi bạn trong code bạn viết là:

{
    getFieldDecorator("username", {
           rules: [{ required: true, message: "Please input your username!" }]
    })(<Input placeholder="Username" />)
}

Thì bên trong hàm của bạn sẽ được chạy là getFieldDecorator(someProps)(uiComponent) đây là cách viết hàm kiểu function return function như này:

function add(x) {
    return function(y) {
        return (x + y)
   }
}
// Khi chạy:
add(1)(2) ==> 3 

Thì khi bạn gọi hàm getFieldDecorator(someProps)(uiComponent) thực tế bên trong nó sẽ làm 1 số việc là:

  • Lấy các thuộc props có sẵn dạng như value, onChange để set vào component của bạn
  • Kết hợp với các thuộc tính phụ bạn truyền vào như: rules: [{ required: true, message: "Please input your username!" }]
  • Và cuối cùng truyền tất cả các props sau khi đã gộp vào cho component của bạn và kết quả nó sẽ return là:
<Input {...props} placeholder="Username" />

Chính vì thế khi bạn truyền thẳng component của antd<Input /> thì bên trong của nó đã viết sẵn cho bạn cái đoạn <Input {...props} /> rồi nên code ở trường hợp bạn viết liền nó hoạt động ngay. Còn khi bạn viết hành component mới là <InputComponent /> nó cũng đã có cái đoạn {...props} rồi tuy nhiên bên trong nội dung cmponent này bạn lại không chủ động thêm vào nên mặc dù hàm getFieldDecorator() đã truyền đầy đủ các thuộc tính cần thiết vào cho component mới của bạn rồi nhưng bạn chưa dùng đến nó dẫn đến cái lỗi như bạn bị ở trên.

+2
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 8 29, 2019 3:44 SA

@dao.thai.son @tuaniot Cám ơn các b, m sẽ tìm hiểu thêm, tại vì mình thấy trong cách 1 nó cũng không truyền gì cả, nên khi tách component riêng ra mình cũng chỉ cắt phần đó ra thôi chứ không nghĩ phải truyền thêm props cho nó

+1
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 8 29, 2019 3:42 SA

@wiliamfeng Mà code chạy rồi thì bác Accept answer cho em đi =))

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 8 29, 2019 3:41 SA

Chuẩn nà vừa gõ thử xong thì đã thấy trả lời cmnr =))

@wiliamfeng InputComponent của bạn thực chất lúc đấy mới chỉ là 1 cái component Input bình thường, hiểu đơn giản là nó chưa được thông các giá trị sang bên kia nên giờ thông cho nó thôi

+1
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 8 29, 2019 3:39 SA

@wiliamfeng: Component <Input /> ban đầu bạn không truyền props

return <Input />;

cho nó, không có tham số truyền vào thì component đó không biết hiển thị cái gì.

Còn đoạn code của mình

return <Input {...this.props} />;

có nghĩa là mình sẽ pass toàn bộ props của thằng component InputComponent vào cái Input. Có lẽ bác nên đọc cái này https://hackernoon.com/data-flow-in-reactjs-c682edc95106 rồi tiếp tục code

+2
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 8 29, 2019 3:35 SA

được rồi bạn, Tks bạn nhiều nghe nhưng m chưa hiểu vì sao phải truyền thêm vào như vậy

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 8 29, 2019 3:33 SA

Vì sao lại thế hả bạn, bạn giải thích thêm cho m được không. tks bạn nhiều !

0

Mong chờ bài viết về cơ hội được làm việc ở Sing của Thớt ạ (hehehe)

+1

Ngon 👍

0

cảm ơn b

0
thg 8 28, 2019 7:56 CH

thường các framework front-end đã có gói cho việc login social này rồi. ví dụ như reactjs có gói react-facebook-login và nó cũng sẽ có hướng dẫn để sử dụng gói đấy. bạn thử tìm xem. hi vọng giúp được bạn.

0
thg 8 28, 2019 4:10 CH

Thank anh . Nay em cũng tìm ra 1 cách là mount socket của docker trên máy host với socket docker trong container. Như vậy thì từ trong container app có thể run command docker của host . container mới sẽ là sibling của container chạy app

+2
thg 8 28, 2019 1:39 CH

bai nay chat qua 😃

0

nếu thế bây giờ e cần phải tách con docker chuyên run code này sang 1 machine hoàn toàn mới. Sau đó từ con server app sẽ run docker đó thông qua API. Và e cũng cần chuẩn bị 1 web app để cung cấp API cho docker nữa (API này đơn giản thôi, chỉ nhận request và call docker thôi. Sau đó trả response về cho bên app rails)

Cách này tốt nhất rồi. Vì nó dễ dàng scale cả phía app rails lẫn phía server để run code.

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í